文档视界 最新最全的文档下载
当前位置:文档视界 › FLEX特效的讲解

FLEX特效的讲解

FLEX特效的讲解
FLEX特效的讲解

FLEX特效的讲解

Flex的行为机制使得开发者可以很方便地为应用程序添加动画效果,从而使用户界面更加丰富多彩。本章将介绍如何在Flex应用程序中创建行为及动画效果。

9.1 什么是行为 Flex中的行为(

Flex的行为机制使得开发者可以很方便地为应用程序添加动画效果,从而使用户界面更加丰富多彩。本章将介绍如何在Flex应用程序中创建行为及动画效果。

9.1 什么是行为

Flex中的行为(Behavior)是由触发器(Trigger)和效果(Effect)组合而成。当用户在界面中进行某项操作时,如单击某个按钮,触发器会被激活,从而使目标组件发生某些视觉或听觉上的变化,例如播放一段逐渐显示的动画或发出声响等。触发器可以由用户操作触发,也可以由程序触发,一个触发器可以对应多个效果。

9.1.1 触发器与效果

触发器的使用非常简单,可以作为MXML标记中的一个属性,也可以在标记中调用,或者在ActionScript中用setStyle()和getStyle()方法调用。触发器的名称为triggerEvent名称+ “Effect”后缀。按照这种名称约定,mouseDown事件的触发器名称为mouseDownEffect。Flex中提供的触发器名称包括以下几种。

l addedEffect:当组件添加到容器中时触发。

l creationCompleteEffect:组件创建完毕时触发。

l focusInEffect:组件获得焦点时触发。

l focusOutEffect:组件失去焦点时触发。

l hideEffect:当组件的visible属性更改为false时触发。

l mouseDownEffect:按下鼠标时触发。

l mouseUpEffect:释放鼠标时触发。

l moveEffect:组件移动时触发。

l removedEffect:组件被移除时触发。

l resizeEffect:组件改变大小时触发。

l rollOutEffect:鼠标从组件上移开时触发。

l rollOverEffect:鼠标移动到组件上时触发。

l showEffect:组件的visible属性更改为true时触发。

Flex的动画效果由一个工厂类(Factory)和一个实例类(Instance)构成。工厂类用来处理事件、控制动画,它的名称就是效果的名称,如Zoom。通常我们在应用程序中创建一个工厂类的实例,设置必要的参数,然后将该实例与触发器关联。实例类则用来实现动画效果,当触发器被触发或调用play()方法时,工厂类创建一个实例类的实例来播放所需效果,执行结束后,该实例会被销毁,如果一个效果对应多个目标对象,每一个目标对象都会有一个自己的实例。实例类的命名规则为效果名+Instance。如之前定义的工厂类名为Zoom,那么实例类名就是ZoomInstance。Effect的这种机制,是设计模式中工厂模式的一种应用,效果执行的时候,运行的不是Zoom,而是ZoomInstance。

下面的图9-1分别表现了工厂类和实例类的层级关系。Effect类是一个抽象基类,是定义所有效果的基本工厂类。EffectInstance类是定义所有效果实例子类的基类。在应用程序中不会创建Effect类本身的实例,而是创建一个子类的实例,如Mask或Tween。

图9-1 工厂类与实例类

9.1.2 简单效果组件

Flex中提供了丰富的效果组件。由于效果是一种根据时间渐变的过程,因此所有效果都具有duration属性,用来设置播放时间(以毫秒为单位)。也可以通过设置repeatCount属性和repeatDelay属性,来分别控制效果播放的次数和重复播放效果的时间间隔(以毫秒为单位)。如果希望在触发器被触发后,延迟一段时间调用效果,可以使用startDelay属性。

1)AnimateProperty动画效果

AnimateProperty是用来为组件的属性或样式设置动画的效果。我们可以通过其property属性设定目标对象上需要设置动画效果的属性,然后设置fromValue 属性和toValue属性,为效果提供属性的起始值和结束值。例如下面的代码使用mouseDownEffect触发器,当单击图片时,触发AnimateProperty效果,在1秒钟内,Image对象的scaleX属性由1变为2,被横向拉伸。代码如下:

" toValue="2"

duration="1000" />

如果希望通过样式设置效果,可以将isStyle属性设置为ture,然后通过setStyle()方法设置目标对象的样式,从而达到设置效果的目的。

2)Blur模糊效果

Blur 是一种模糊效果。该效果使用了flash.filters.BlurFilter滤镜,如果对某个组件应用了Blur 效果,就不能再对该组件应用BlurFilter滤镜,也无法再次应用Blur效果。下面的代码通过Image对象的mouseDownEffect触发器触发Blur效果,在1秒钟内,Image对象将逐渐变得模糊。代码如下:

blurYFrom="0.0" blurYTo="10.0"/>

3)Dissolve溶解效果

Dissolve是一种溶解效果。当效果开始播放时,将创建一个不透明的矩形,这个矩形悬浮在目标组件的上方,它的颜色由Dissolve.color属性设置,此时透明度为“1.0 - Dissolve.alphaFrom”。随着效果的播放,该矩形的alpha属性将从(1.0 - alphaFrom)逐渐变为“1.0 –alphaTo”,直到效果播放完成,矩形被销毁。

如果目标对象是一个容器,那么Dissolve效果将应用于容器内部的内容区域。

下面的代码使用一个CheckBox对象设置Image的visible属性,通过hideEffect

和showEffect触发器分别触发各自的Dissolve效果:

.0"/>

0"/>

hideEffect="{dissolveOut}" showEffect="{dissolveIn}"/>

4)Fade淡入淡出效果

Fade是一种淡入淡出效果,它通过设置组件的alpha属性来实现动画效果。当使用showEffect或hideEffect触发器设置Fade效果时,如果省略了alphaFrom 和alphaTo属性的值,那么在showEffect触发器上目标对象的透明度将从 0变化到目标的当前alpha值,而在hideEffect触发器上则会从当前的alpha 值变化到0。如果要对字体使用Fade效果,必须使用嵌入字体。

下面的代码使用一个CheckBox对象设置Image的visible属性,通过hideEffect 和showEffect触发器分别触发各自的Fade效果:

hideEffect="{fadeOut}" showEffect="{fadeIn}"/>

5)Glow发光效果

Glow是一种发光效果,该效果使用了flash.filters.GlowFilter滤镜类。如果对某个组件应用了Glow效果,就不能对该组件应用GlowFilter滤镜,也无法再次应用Glow效果。下面的代码通过Image对象的mouseDownEffect触发器触发Glow效果:

blurXFrom="0.0"blurXTo="50.0"blurYFrom="0.0"blurYTo="50.0"color="0x

00FF00"/>

6)Iris虹效果

Iris效果通过扩展或收缩集中在目标上的矩形遮罩为效果目标设置动画。该效果可以从目标的中心放大遮罩来显示目标,也可以向中心收缩遮罩来隐藏目标。下面的代码使用一个CheckBox对象设置Image的visible属性,通过hideEffect 和showEffect触发器分别触发各自的Iris效果:

showEffect="{irisIn}" hideEffect="{irisOut}"/>

7)Move移动效果

Move效果用来实现移动动画。在给定时间内,组件的位置会随时间变化而变化。使用该效果通常需要用到以下几个属性。

l xFrom和yFrom属性用来指定初始位置。

l xTo和yTo属性用来指定目标位置。

l xBy和yBy用来指定移动量,即组件在x轴向和y轴向上的移动速度。

通常只需要指定初始位置、目标位置或移动量这些值中的任意2个, Flex就会计算第3个值。如果指定所有这3个值,Flex就会忽略xBy和yBy值。如果仅指定xTo和yTo值或xBy和yBy值,那么Flex会将xFrom和yFrom设置为对象的当前位置。

下面的程序演示了如何使用Move效果。

代码清单 MoveSample.mxml

ngLeft=

"0"

layout="absolute" mouseDown="moveImage();">

//当按下鼠标时调用该事件

private function moveImage():void {

//停止播放Move效果

moveEffect.end();

//设置目标位置

moveEffect.xTo=mouseX;

moveEffect.yTo=mouseY;

//播放Move效果

moveEffect.play();

}

]]>

代码中将Application的layout属性设置为absolute,当用户在应用程序中任何位置上单击鼠标时,调用moveImage方法,该方法中首先停止Move效果,然后根据鼠标单击的位置设置目标位置,最后播放效果。

通常Move效果应用于使用绝对定位的容器(如 Canvas)或使用

“layout=absolute”的容器(如 Application或Panel)中。如果需要将其应

用到自动布局的容器(如VBox或 Grid容器)中,虽然会移动目标对象,但下次容器更新其布局时,会将目标对象移回其原始位置。在这种情况下,可以将容器的autoLayout属性设置为false来禁止往回移动,但这会禁用容器中所有控件的布局。

8)Pause暂停效果

Pause效果可以实现在指定时间段内不执行任何操作的功能。如果将Pause效果添加为 Sequence效果的子项,可以创建2个其他效果之间的暂停。

9)Resize大小调整效果

Resize效果用来改变组件的大小。与Move效果相似,Resize效果可以指定初始大小(widthFrom、heightFrom)、目标大小(widthTo、heightTo)和变化量(widthBy、heightBy),其使用规则也与Move效果的初始位置、目标位置和移动量的使用规则相似。下面的代码演示了Resize效果的使用方法:

另外hideChildrenTargets属性用来隐藏Panel容器的其他子项,当我们对Panel容器中的子项应用Resize效果时,默认情况下Panel会反复计算子项的大小和位置以调整布局,如果将这个属性设为true,可以让Panel容器在播放动画时不做这种计算,直到播放完成,这样可以节约系统资源。

10)Rotate旋转效果

Rotate是一种旋转效果,使组件围绕指定的点旋转。Rotate可以指定旋转中心的坐标(originX和originY属性)及旋转的起始角度(angleFrom属性)和最终角度(angleTo属性)。起始旋转角度的有效值范围是0~360,而最终角度则可以是正值也可以是负值,默认值为360。如果angleTo的值比angleFrom的值小,则目标沿逆时针方向旋转,否则以顺时针方向旋转。代码如下:

duration="2000"/>

另外有时需要设置hideFocusRing属性,以确定在开始播放效果时,效果是否应隐藏对焦环。该属性默认值为true。对于组件而言,对焦环已经被自动隐藏。如果Rotate效果应用于那些不是以UIComponent为基类目标对象,就必须隐藏对焦环。

需要注意的是, hideFocusRing属性在以Effect为基类的效果类中,默认值为false,而在以MaskEffect为基类效果类中,默认值为true。

11)SoundEffect声音效果

SoundEffect效果用来播放MP3音频文件。我们可以通过source属性指定要播放的MP3文件,可以直接设置该文件的URL,或是由Embed关键字嵌入MP3文件的Class对象。

SoundEffect效果的属性包括以下几个。

l autoLoad 属性用来设置是否自动加载MP3文件,默认值为true。

l bufferTime 属性用来设置声音对象的缓冲时间。默认值为 1000,单位为毫秒。

l isLoading如果已加载MP3,则该属性为true。

l loops 属性用来设置循环次数,默认值为0。

l panEasingFunction 属性用来设置声音均衡效果的缓动函数。

l panFrom属性和panTo属性用来设置声音对象的起始和最终平移,取值范围在-1.0~1.0之间,其中-1.0表示仅使用左声道,1.0 表示仅使用右声道,而0.0表示在2个声道间平均地均衡声音。

l sound 属性表示已加载MP3文件的声音对象。

l source 属性表示要播放的MP3文件的URL或类。

l startTime 属性用来设置开始播放时间(以毫秒为单位),默认值为0。

l useDuration 属性表示是否根据duration属性指定的时间停止播

放,如果为false,则会在MP3完成播放或循环后停止效果,默认值为 true。

l volumeEasingFunction 属性用来设置音量效果的缓动函数。

l volumeFrom 属性和volumeTo属性用来设置声音对象的初始和最终音量,取值范围在0.0~1.0之间,默认值为1。

在下面的代码所示的例子中,当应用程序创建完成后开始播放声音文件,声音从左声道过渡到右声道。

代码清单 SoundSample.mxml

creationCompleteEffect="{mySound}">

duration="10000"

useDuration="false"

panFrom="-1" panTo="1"

source="@Embed(source='assets/bumperc.mp3')"/>

12)WipeUp、WipeRight、WipeDown、WipeLeft擦除效果

这些类定义了4个方向的擦除效果,通常与showEffect和hideEffect触发器配合使用,使用起来非常简便,如下面的例子。

代码清单 WipeSample.mxml

hideEffect="{wipeUpOut}" showEffect="{wipeUpIn}"/>

hideEffect="{wipeLeftOut}" showEffect="{wipeLeftIn}"/>

hideEffect="{wipeDownOut}" showEffect="{wipeDownIn}"/>

hideEffect="{wipeRightOut}" showEffect="{wipeRightIn}"/>

运行该程序,效果如图9-2所示。

图9-2 擦除效果

13)Zoom缩放效果

Zoom效果可以以指定点为中心按比例缩放对象。与Resize效果不同的是,Resize 改变目标对象的长宽属性,而Zoom改变的目标对象的缩放比例。在下面的例子中,当鼠标移动到图片上时开始播放Zoom效果,鼠标移出时还原。

代码清单 ZoomSample.mxml

1:glow(发光)

代码:

alphaFrom="0.6" alphaTo="0.2"

blurXFrom="0.0" blurXTo="50.0"

blurYFrom="0.0" blurYTo="50.0"

color="0xffffff"/>

duratuion 是特效的时间 1000 毫秒

alphaFrom 是透明度从 0.6 开始

alphaTo 是透明度到 0.2

blurXFrom 是X放向的模糊开始位置(相对于控件的)

blurXTo 是X放向的模糊结束位置(相对于控件的)

blurYFrom 是Y放向的模糊开始位置(相对于控件的)

blurYTo 是Y放向的模糊结束位置(相对于控件的)

color 是发光的颜色

2:Sequence (顺序) Bounce(弹跳)

代码:

import mx.effects.easing.*;

yBy 是作用在Y方向。

duratuion 是特效的时间 1000 毫秒

easingFunction 是松开动作

Bounce.easeOut 是跳出的动作

Bounce.easeIn 是跳回的动作

作用到控件:

mouseDownEffect="{movePauseMove}"

id="image4"/>

六、自定义效果:

每个效果都是由两个元素组成的,分别是EffectInstance效果实例与Effect类工厂。所以在

自定义效果的时候,也要成对的创建这两个类的子类,并分别继承自EffectInstance类和Effect类。如:

view plaincopy to clipboardprint?

public class TestEffect extends Effect

{

public var alp:Number;

public var col:uint;

public function TestEffect(target:Object=null)

{

super(target);

instanceClass = TestInstance;

}

override protected function initInstance(instance:IEffectInstance):void{

super.initInstance(instance);

TestInstance(instance).col = this.col;

TestInstance(instance).alp = this.alp;

}

}

public class TestInstance extends EffectInstance

{

public var alp:Number;

public var col:uint;

public function TestInstance(target:Object)

{

super(target);

}

override public function play():void{

super.play();

(target as DisplayObject).alpha = this.alp;

var shape:FlexShape = new FlexShape();

shape.graphics.beginFill(col,1.0);

shape.graphics.drawRect(0,0,(target as DisplayObject).width,(target as DisplayObject).height);

shape.graphics.endFill();

var uiComp:UIComponent = new UIComponent();

uiComp.addChild(shape);

UIComponent(target).addChild(uiComp);

}

}

public class TestEffect extends Effect

{

public var alp:Number;

public var col:uint;

public function TestEffect(target:Object=null)

{

super(target);

instanceClass = TestInstance;

}

override protected function

initInstance(instance:IEffectInstance):void{

super.initInstance(instance);

TestInstance(instance).col = this.col;

TestInstance(instance).alp = this.alp;

}

}

public class TestInstance extends EffectInstance

{

public var alp:Number;

public var col:uint;

public function TestInstance(target:Object)

{

super(target);

}

override public function play():void{

super.play();

(target as DisplayObject).alpha = this.alp;

var shape:FlexShape = new FlexShape();

shape.graphics.beginFill(col,1.0);

shape.graphics.drawRect(0,0,(target as DisplayObject).width,(target as DisplayObject).height);

shape.graphics.endFill();

var uiComp:UIComponent = new UIComponent();

uiComp.addChild(shape);

UIComponent(target).addChild(uiComp);

}

}

七、其它:

1)当想手动播放某效果时,调用效果实例的play方法即可,为了稳定,一般在调用play方法前先调用一下end,来保证先前效果已结束。

2)当给对象添加触发效果方式时:uicompnent.setStyle("触发方式",特效对象);

3)运用组合效果(Sequence与Parallel)时,调用该效果的addChild方法即可,将子效果添加的组合效果对象中。如:

Sequence.addChild(move); Sequence.addChild(glow);

Microsoft flexGrid control Microsoft flexGrid control控件比较常见。

Microsoft flexGrid control控件比较常见。 【实现步骤】 1.当鼠标点击表格控件的某一格时,首先判断该列的属性,是直接编辑呢,还是用下拉列表进行选择。 2.显示隐藏的文本控件或者下拉列表控件,显示的位置和大小与选中格的位置大小完全相同,这样可以覆盖选中格 3.将选中格的内容填到文本控件或者下拉列表控件中 4.修改完毕后,将新的内容填到选中格中,同时隐藏文本控件或者下拉列表控件。 【主要程序段及说明】 变量定义: CComboBox m_ChangeCombo;--下拉列表控件,初始时不可见 CEdit m_Change;---------------文本控件,初始时不可见 CSring m_sChange;----------------与文本控件关联的字符串 CMSFlexGrid m_FlexGrid;-----表格控件 程序段: 表格点击事件:选中某一格后,就要显示相应的文本控件或者列表控件 void CChartInfoEditDlg::OnClickMsflexgrid() { //点击无效区,返回 long lRow = m_FlexGrid.GetRowSel();//获取点击的行号 long lCol = m_FlexGrid.GetColSel(); //获取点击的列号 if(lRow>m_SAttrInfo.attrNum) //如果点击区超过最大行号,则点击是无效的

return; if(lRow == 0) //如果点击标题行,也无效 return; // CRect rect; m_FlexGrid.GetWindowRect(rect); //获取表格控件的窗口矩形 ScreenToClient(rect); //转换为客户区矩形 // MSFlexGrid 控件的函数的长度单位是"缇(twips)", //需要将其转化为像素,1440 缇= 1 英寸 CDC* pDC =GetDC(); //计算象素点和缇的转换比例 int nTwipsPerDotX = 1440 / pDC->GetDeviceCaps(LOGPIXELSX) ; int nTwipsPerDotY = 1440 / pDC->GetDeviceCaps(LOGPIXELSY) ; //计算选中格的左上角的坐标(象素为单位) long y = m_FlexGrid.GetRowPos(lRow)/nTwipsPerDotY; long x = m_FlexGrid.GetColPos(lCol)/nTwipsPerDotX; //计算选中格的尺寸(象素为单位)。加1是实际调试中,发现加1后效果更好 long width = m_FlexGrid.GetColWidth(lCol)/nTwipsPerDotX+1; long height = m_FlexGrid.GetRowHeight(lRow)/nTwipsPerDotY+1; //形成选中个所在的矩形区域 CRect rc(x,y,x+width,y+height);

(完整版)MSFlexGrid控件属性及使用方法整理

MSFlexGrid控件属性及使用方法整理 ================================================= MSFlexGrid总行数和总列数的定义: MSFlexGrid1.Rows = 5 '规定表格的总行数为5行 MSFlexGrid1.Cols = 2 '规定表格的总列数为2行 MSFlexGrid某一单元格的文本内容 MSFlexGrid1.TextMatrix(3, 0) ="网站地址" '定义第3行的左边表头文本内容为:“网站地址”MSFlexGrid1.TextMatrix(3, 2) ="https://www.docsj.com/doc/0e4416425.html, " 定义第3行第2列的文本内容为:“https://www.docsj.com/doc/0e4416425.html,” 右键选中MSFlexGrid的 Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) If Button = vbRightButton Then MSFlexGrid1.Row = y / MSFlexGrid1.RowHeight(0) - 0.5 MSFlexGrid1.RowSel = MSFlexGrid1.Row '右键选种当前行---备用u3u3: 'MSFlexGrid1.Col = 0 'MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1 '右键选种当前单元格---备用u3u3: 'MSFlexGrid1.Col = x / MSFlexGrid1.ColWidth(0) - 0.5 'MSFlexGrid1.Col = MSFlexGrid1.Col 'Text1.Text = MSFlexGrid1.Text End If End Sub

MSFlexGrid控件详解

MSFlexGrid控件 目录 概述 属性 方法 事件 属性常数 概述 属性 方法 事件 属性常数 展开 编辑本段概述 MSFlexGrid控件显示和操作表格数据。其对包含字符串和图片的表格提供了灵活的排序、插入数据和格式编排功能。当与Data控件绑定时,MSFlexGrid控件只显示只读数据。 你可以在MSFlexGrid中的任何单元放置文本、图片或这二者。Row和Col属性指定MSFlexGrid控件的当前单元。你可以在代码中指定当前单元,也可以在运行时使用鼠标或键盘改变当前单元。Text属性引用了当前单元中的文本。 如果单元中的文本太长以致不能在单元中一行显示,将WordWrap属性置为True将在单元中分多行显示文本。要在单元中显示多行文本,你需要增大单元的宽度(ColWidth属性)或行高度(RowHeight属性)。 使用Cols和Rows属性确定MSFlexGrid控件中的行数和列数。 编辑本段属性 OLEDropMode属性(ActiveX控件),Height, Width属性(ActiveX 控件),Index属性(ActiveX控件),Left, Top属性(ActiveX控件),Tag属性(ActiveX控件),Visible属性(ActiveX控件),Object属性(ActiveX控件),ColPos属性,ColPositon, RowPosition属性,Cols, Rows 属性(MSHFlexGrid),ColSel,RowSel属性,ColWidth属性(MSHFlexGrid),FillStyle属性(MSHFlexGrid),FixedCols, FixedRows属性

Web前端技术项目式教程(HTML5 CSS3 Flex Bootstrap)教案-使用Bootstrap实现网页响应式布局

第9章使用Bootstrap实现网页响应式布局 课程名称Web前端开发项目名称 使用Bootstrap实现 网页响应式布局任务名称使用Bootstrap实现网页响应式布局课时 6 项目性质□演示性□验证性□设计性√综合性 授课班级授课日期授课地点 教学目标能力目标: 1. 具备应用Bootstrap实现响应式布局的能力 2. 具备灵活运用Bootstrap的能力 知识目标: 1. 掌握Bootstrap框架的基本语法 2. 掌握运用Bootstrap实现各种响应式布局的方法素质目标: 1. 培养学生信息搜集能力 2. 培养学生团结合作、互帮互助的能力 教学内容1. 任务描述 2. 任务展示与实现 (1)实现云景旅游公司首页Bootstrap布局(2)学生动手操作 3. 教师讲解本任务涉及的知识点 4. 任务小结 教学重点 1. Bootstrap框架的基本语法 2. Bootstrap框架实现响应式网页

教学难点 1. Bootstrap框架实现响应式网页 教学准备1. 装有Sublime或者Hbuilder的电脑 2. 教学课件PPT 3. 教材:《Web前端技术项目式教程》 作业设计1.使用Bootstrap实现公司二级页面“公司概况”的响应式效果。 教学过程 教学环节 教学内容与过程 (教学内容、教学方法、组织形式、教学手段) 课前组织 做好课前“5分钟”教学管理(多媒体、实训室),做好上课前的各项准备工作(打开电脑、打开课件、打开软件、打开U盘中的素材位置、打开授课计划、教案等),吸引学生注意力。 课程说明【课前说明】 分别从Bootstrap语法基础,Bootstrap框架的使用方法,讲解响应式网页的实现方法。 【目的】 使学生从了解本单元的学习目标、学习重点、考评方式等方面明确学习本单元知识的要求和目标。掌握Bootstrap框架的基础,掌握使用Bootstrap框架实现响应式网页的方法。

flex个人总结

Flex笔记 RIA(Rich Internet Applications) 1.Flex用到的2种语言:MXML 和actionScript ,由于flash player 只支持actionScript3.0和actionScript 2.0,所以MXML会编译成actionScript类; 2.MXML内部嵌入actionSript,实例: 这句话的意思是把其作为内容引用,比如< > &在xml中都有特殊的用法; 3.ActionScript3.0的语言运算符: ①算术用于各类数值的运算:+ 加,- 减,* 乘,/ 除,% 求余,++ 自增,-- 自减 ②逻辑运算:&& 与,|| 或,!非 ③关系运算符:> 大于,< 小于,== 等于,>= 大于等于,<= 小于等于,!=不等于 ④位运算符:& 位与,| 位或,~ 位非,^ 位异或, << 左移, >> 右移 ⑤特殊运算符:()括号,[] 小标,取XML 的属性值”@“ ⑥赋值运算符:简单赋值=;复合算术赋值符:+= ,-=,*=,/=,%=;复合位运算赋值:&=,|=,^=,>>=,<<= ⑦条件运算符: ? ⑧逗号运算符用于把若干表达式组合成一个表达式,运算符为”,“ 4.Flex中的数字类型:int ,Number, uint Number: 在ActionScript3.0中,Number数据类型可以表示整数、无符号整数和浮点数。但是,为了尽可能提高性能,应将Number数据类型仅用于浮点数,或者用于int和uint 类型可以存储的、大于32位的整数值。要存储浮点数,数字中应包括一个小数点。如果您省略了小数点,数字将存储为整数。 Int:Flex数据类型中int数据类型在内部存储为32位整数,它包含一组介于-2,147,483,648(-231)和2,147,483,647(231-1)之间的整数(包括-2,147,483,648和2,147,483,647)。早期的ActionScript版本仅提供Number数据类型,该数据类型既可用于整数又可用于浮点数。在ActionScript3.0中,现在可以访问32位带符号整数和无符号整数的低位机器类型。如果您的变量将不会使用浮点数,那么,使用int数据类型来代替Number 数据类型应会更快更高效。 对于小于int的最小值或大于int的最大值的整数值,应使用Number数据类型。Number 数据类型可以处理-9,007,199,254,740,992和9,007,199,254,740,992(53位整数值)之间的值。int数据类型的变量的默认值是0。 Uint:uint数据类型在内部存储为32位无符号整数,它包含一组介于0和4,294,967,295(232-1)之间的整数(包括0和4,294,967,295)。uint数据类型可用于要求非负整数的特殊情形。例

网易校招前端一面和二面

网易校招前端一面和二面 一面 1.对前端安全的理解 讲了讲XSS、CSRF、点击劫持、社会工程学等等的特点、攻防方式 2.对模块化的了解 讲了讲amd、cmd、es6的模块特点和区别,后面想想应该加上angular模块和懒加载的部分 3.angular双向绑定的原理 4.左边固定右边自适应CSS布局: ?浮动 ?绝对布局 ?表格与表格布局 ?inline-block ?flex ?grid 5.对HTML5标签语义化的理解 6.css动画,追问:js动画写过吗?position有哪些基本值?它们有什么区别? 简单说了说translate/transform/animation,没有写过js动画。 a/r/f/s…相对于页面/自身/屏幕/默认定位 7.异步的几种方式 8.自己实现bind函数 // 简单的辅助绑定函数 function bind(fn, obj) { return function() { return fn.apply( obj, arguments ); };

} 9.谈谈项目和优化的地方? 直接拿成绩有毒给他们演示,讲了一个懒加载列表+事件代理解决加载列表卡顿的情况。追问:怎么控制事件触发频率?怎么实现的? 二面 1.手写一个select组件,就是点一下select出来一个列表,点击列表项select自动填充。 我:可以有一个Select、List、ListItem类,然后传统的DOM驱动的写法是先获取到它们的DOM节点再监听事件,触发事件后执行相应的逻辑,MVVM的写法是使用数据来控制它们的行为…然后开始写 面试官:你写的太复杂了,这题根本不需要用到面向对象,简化一下 我:请提示一下? 面试官:select和列表都在一个父元素里 我:父元素设为relative定位,里面的列表设为absolute定位,然后写一个函数,参数是源dom和目标dom,可以把源dom的值展现到目标dom上去。 面试官:嗯…然后继续手头上的工作 (代码暂时先不贴,这一块到底怎么写才优雅我现在还有点疑惑) 2.模版用过没有?&*%、%¥(没听懂,应该是一些模板)字符串怎么解析成模板的?特别是带逻辑的那一块? 我:Angular的字符串解析模板了解一点,是用装饰器…但我还没说完就叫停了考官:没用过就算了吧,不过怎么可能没用过呢? 这个时候我已经开始出冷汗了… 3.手写用setTimeout模拟setInterval 开始我说setTimeout里面再调用setTimeout 面试官:不对 我想了一会:自定义一个mySetInterval函数 function mySetInterval(cb,time){ let temp = function(){ setTimeout(temp,time) cb.apply(null) } setTimeout(temp,time) } 面试官:嗯…又是一段沉默,然后继续做他的事情

Flex考试题

Flex综合测试题 1)下面关于RIA的概念说法错误的是() A)RIA将桌面应用程序的强交互性与传统Web应用灵活的结合起来 B)RIA的富客户端采用异步的方式同服务器端通讯 C)RIA在通讯中会传输所有的数据,增加了数据的信息量 D)RIA可以整合声音,视频等桌面元素 2)一下关于Flex程序说法不正确的是() A)Flex程序由*.MXML、*.as、*.css文件组成 B)MXML语言专用于Flex程序中,是用于描述界面表现的一种XML标记语言 C)ActionScript是针对Adobe Flash Player运行环境的编程语言 D)MXML提供了一系列标签供用户使用,MXML不区分大小写 3)一下关于Applicaton布局的说话,错误的是() A)Application默认的布局是BasicLayout B)HorizonatalLayout表示水平布局方式 C)VertiacalLayout表示竖直布局方式 D)TileLayout表示主题布局方式 4)关于一下代码的说法,不正确的是() A)当用户单击提交按钮时,会触发StringValidator验证对象 B)当用户单击id为sumit的按钮时,会触发StringValidator验证对象 C)StringValidator验证对象验证的目标是id为txtPwd的输入组件 D)StringValidator验证对象验证的是txtPwd的text属性 5)下面不是为了实现RIA的技术是() A)XMTL B)AJax C)EXT D)Flex 6)下面关于Flex自定义组件,说法正确的是() A)自定义组件提高了代码的重用性,降低了维护的难度 B)一般讲程序中不常用的功能定义成自定义组件 C)一般将程序中通用的功能定义成自定义组件 D)一般讲程序中独立的功能定义成自定义组件 7)下面关于Flex编译过程说法正确的是() A)将ActionScript语言编译成MXML语言 B)将ActionScript编译成CSS语言 C)将MXML语言编译成ActionScript语言 D)将MXML语言编译成css语言 8)下面是用于验证日期的是() A)

MSFlexGrid控件

MSFlexGrid控件 MSFlexGrid控件显示和操作表格数据。其对包含字符串和图片的表格提供了灵活的排序、插入数据和格式编排功能。当与Data控件绑定时,MSFlexGrid控件只显示只读数据。 你可以在MSFlexGrid中的任何单元放置文本、图片或这二者。Row和Col属性指定MSFlexGrid控件的当前单元。你可以在代码中指定当前单元,也可以在运行时使用鼠标或键盘改变当前单元。Text属性引用了当前单元中的文本。 如果单元中的文本太长以致不能在单元中一行显示,将WordWrap属性置为True将在单元中分多行显示文本。要在单元中显示多行文本,你需要增大单元的宽度(ColWidth属性)或行高度(RowHeight属性)。 使用Cols和Rows属性确定MSFlexGrid控件中的行数和列数。 MSFlexGrid特有事件 ※注1:MSFlexGrid控件的特有事件全部是不带参数的,要注意与DataGrid控件的同名事件区分 ※注2:执行顺序:LeaveCell → SelChange → EnterCell → RowColChange ◇SelChange事件 (DISPID = 69) Private Sub object_SelChange() void OnSelChange(void); ◇RowColChange事件 (DISPID = 70) Private Sub object_RowColChange() void OnRowColChange(void); ◇EnterCell事件 (DISPID = 71) Private Sub object_EnterCell() void OnEnterCell(void); ◇LeaveCell事件 (DISPID = 72) Private Sub object_LeaveCell() void OnLeaveCell(void); ◇Scroll事件 (DISPID = 73) Private Sub object_Scroll() void OnScroll(void); ◇Compare事件 Private Sub object_Compare(row1, row2, cmp) void OnCompare(long nRow1, long nRow2, CMP_FUNC pFunc) ActiveX控件事件

Flex_4_样式与布局小结

Flex 4 样式与布局 第一篇 Flex 4 与自定义布局(Layout) Flex 4/Spark组件架构的新功能之一是可以定制一个容器的布局而不必改变容器本身。您需要做的就是定义一个自定义布局。 Flex 4/Spark架构中的容器并不控制它们自己的布局。相反,每种容器具有一个布局属性,用于确定如何在屏幕上设置子元素的布局。可以使用一个单独的Group容器,并赋予其一个垂直布局、水平布局或平铺布局,这取决于您将如何创建它。代码很简单,如下所示:

(参考文章:Flex 4与自定义布局: 译文:https://www.docsj.com/doc/0e4416425.html,/lihe111/archive/2009/07/06/4325571.aspx 原文:https://www.docsj.com/doc/0e4416425.html,/2009/05/flex-4-custom-layouts.html) 第二篇 Flex 4 SkinClass 改变组件外观 在Flex 4中,SkinClass指向的文件通常用一个使用s:skin标签(或者sparkskin)的MXML 文件进行定义。通过skinclass来改变外观的spark组件通常也是skinclass引用的Host component。Flex 4 中新的改变外观架构可以在很大的程度上将组件和组件的外观设计分开,这样组件外观设计的代码通过改变小部分的代码就可以得到重用了。 一、SkinClass必须包含的三样东西: 1、HostComponent metadata SkinClass文件需要引用HostComponent对象,而HostComponent是指需要改变外观的组件。我们可以通过metadata标签来指定HostComponent。如:我们需要设置Button 的外观,那么Button就是HostComponent。 Code: 1. 2. 5. 2、States 如果HostComponent中有SkinState(一般用metadata标签来声明),例如:

FlexGrid控件的使用(二)

FlexGrid控件的使用(二) 时间:2007-05-05 缩进带区 如果带区以垂直方式显示,那么可以使带区缩进若干列。这样就可以使用户查看带区信息的时候更加清楚。每个带区前面被缩进的列中包含了空白的、未被使用的单元格。因此,用户不能够将焦点移到这些区域中。这些单元格的格式特点是由若干缩进格式定义属性,如GridLinesIndent定义的。请参阅前面的“改变带区的布局”中的“垂直方式的带区显示”图片。 要缩进带区 1. 右击Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid的“属性页”对话框。 2. 在“带区”选项卡中,选择“带区缩进”并指定带区需要缩进的列数。 3. 单击“确定”,将带区属性应用于Hierarchical FlexGrid并关闭“属性页”对话框。 对非分层结构的Recordset使用带区功能 使用Hierarchical FlexGrid的“属性页”对话框,也可以设置非分层结构的Recordset 带区的格式。非分层结构的Recordset中只包含一个带区,即Band 0。没有其他的带区,因为带区是以Command 分层结构中的Recordsets 为基础的。 使用带区的扩展和收缩功能 扩展和收缩功能有助于方便地查看Recordset的组织情况,便于滚动查看Hierarchical FlexGrid。该功能使用户既能够查看大量的数据,也可以查看压缩形式的信息。如果一个带区是可开展的,那么该带区的左上角会显示出一个缺省的扩展(+) 或收缩(-) 位图。无论垂直带区还是水平带区都可以使用扩展和收缩功能。 当带区处于扩展状态的时候,出现的将是收缩(-) 位图。在扩展状态下,带区显示出最大数量的数据。当带区处于收缩状态的时候,出现的将是收缩(+) 位图。在扩展状态下,带区显示出最少量的数据。 在收缩状态下,带区中可能显示未被填充数据的区域。对未填充区域的格式也有专门的规定。 收缩状态的带区 当一个带区处于收缩状态时,它的任何一个记录都不会显示出来,该带区中的列也不会显示出来。当用户将带区展开时,这些列将显示出来。展开状态的带区具有统一的高度。在必要的情况下,

FlexCell控件例子

FlexCell控件例子 FlexCell控件另一个比较强的特点是支持多种文件格式,这节我们来正式开始使用该控件。我做了个类似FlexCell控件自带演示程序的界面,使用CVI来使用实现该控件的所有操作。 1、添加菜单 从本节开始,我们将全面进行该控件的操作。菜单的制作方法我这里就不再说明,不知道的朋友可以参考我的视频教程,其中有菜单制作的所有过程。 2、格式说明 FlexCell控件支持自己格式的导入导出(.Cel)。XML文件的导入。EXCEL格式的导出,HTML格式的导出,XML格式的导出,CSV文件的导出。可以发现控件不能支持读取EXECL 文件是一个比较遗憾的地方。所有的这些功能控件都已经为我们封装好了函数,无需我们CVI来操心。 //新建文件 void CVICALLBACK NewFile (int menuBar, int menuItem, void *callbackData, int panel) { int Row,Colunm; //得到当前行列数 FlexCell__GridGetRows (FlexTable, NULL, &Row); FlexCell__GridGetCols (FlexTable, NULL, &Colunm); FlexCell__GridNewFile (FlexTable, NULL, NULL);

//设置行列数 FlexCell__GridSetRows (FlexTable, NULL, Row); FlexCell__GridSetCols (FlexTable, NULL, Colunm); } 函数名称大家可以自己修改。这个函数比较有用,当你的控件已经进行了大量的读取和赋值后此时如果要清除所有单元格中的数据我们上一节使用过这种方法: //设置为100行 FlexCell__GridSetRows (FlexTable, NULL, 101); //选择处理的行列范围 FlexCell__GridRange (FlexTable, NULL, 1, 1, 100, 10, FlexTableRange); //删除现有行 FlexCell__RangeDeleteByRow (FlexTableRange, NULL); //添加新的100行 FlexCell__GridSetRows (FlexTable, NULL, 101); 我们先心中当前所有的单元格,将它们删除,然后再添加同样的行数。这个方法在行列数多时会极大影响速度。现在我们使用控件提供的新建文件的方法来实现。 FlexCell__GridNewFile (FlexTable, NULL, NULL);这个函数不需要任何其它参数,给出控件的CA对象句柄即可。此时大家可以看到控件马上恢复为添加控件时初始状态。但是这样做会自己恢复为控件默认的5列10行。这和我们在CVI定义的100行10列不一样。每个用户也都有自己的初始数量。因此,我们在使用该函数前先得到下目前控件的行列数量,在新建文件后马上设置回来。这里的新建文件和WORD中新建文件是一样的,它之所以就像清除所有单元格是因为该控件是一个单文档界面,所以新建文件就等于清除了现在的内容直接显示为一个新的表格。在多文档形式中这样新建会出现一个新的窗口,当前的窗口内容没有变化。 //打开文件 void CVICALLBACK OpenedFile (int menuBar, int menuItem, void *callbackData, int panel) { FlexCell__GridOpenFile (FlexTable, NULL, "", NULL); } 该控件给我们高度封装了很多函数,我们后面使用的函数都是如此,这个打开文件的函数也不给任何参数,给了一个空字符串,函数定义如果给的是空字符串函数会自己先调用API 的打开文件对话框(CVI中函数为FileSelectPopup)电你选择好需要打开的文件后函数 自己处理将你选中的文件打开。省去了我们CVI打开文件的很多代码。当然你可以直接给

FlexGrid控件的使用(三)

FlexGrid控件的使用(三) 时间:2007-05-05 定制标准区域的显示方式 Hierarchical FlexGrid标准区域的显示方式是可以定制的,这样提供给用户的信息将更加清晰、便于访问。标准区域中包含被绑定到数据的单元格。 要定制Hierarchical FlexGrid标准区域的显示方式 1. 单击Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid的“属性页”对话框。 2. 在“通用”选项卡上,设置下列标准属性: 3. 在Style选项卡上,设置下列标准属性: 4.在Font选项卡上,设置下列标准属性:

5.单击“确定”,将标准属性应用于Hierarchical FlexGrid并关闭“属性页”对话框。 定制固定区域的显示方式 可以创建固定显示在Hierarchical FlexGrid中的行或者列。为了便于用户阅读,应该使用一个固定的区域来显示一个标头集合,而不是在每个带区中使用重复的列标头。该区域将是静态的,它标识了下面的行或者右边的列。 要定制Hierarchical FlexGrid的固定区域的显示方式 1. 单击Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid的“属性页”对话框。 2. 在“通用”选项卡上,指定“固定行”和“固定列”文本框中各自的行数和列数,然后单击“应用”。 3. 在“样式”选项卡上,从“固定文本样式”框中为固定文本选择显示风格,然后单击“应用”。 4. 在“字体”选项卡中,设置下列标准属性: 5. 从“颜色”选项卡中,为每一个固定属性指定一个颜色。为此,首先需要选择一个“颜色设置”。然后,单击需要改变的属性(例如BackColorFixed),单击“调色板”中的一种颜色,最后单击“应用”。对需要改变的每一个固定区域重复上述操作。 注意如果使用了“Windows 缺省”颜色,那么Hierarchical FlexGrid中显示的颜色将是在“显示控制面板”中指定的颜色。除了将HierarchicalFlexGrid属性的颜色改变为标准的或Windows 缺省颜色之外,也可以创建自己的颜色定义(单击“Edit Custom Color”,使用随之弹出的“颜色”对话框。)关于每个属性的有关信息,请参阅HierarchicalFlexGrid的属性主题。 6. 单击“确定”,将固定属性应用于Hierarchical FlexGrid并关闭“属性页”对话框。 定制标头的显示方式 在Hierarchical FlexGrid中,可以改变带区标头的格式和显示属性。 要定制Hierarchical FlexGrid的标头显示方式 1. 右击Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid的“属性页”对话框。 2. 在“带区”选项卡中,从“文本样式标头”框中选择一种标头样式,然后选择“ColumnHeaders”。注意为了防止Hierarchical FlexGrid显示重复的标头,必须在“通用”选项卡中将Fixed Row 文本框设置为0。此外,如果希望在HierarchicalFlexGrid的顶部只显示带区的一组标头,那么必须

FlexBuilder教程

Flex Builder 教程 来源: 作者: 时间: 2008-09-15 点击: 224 ,概述 ActionScript (基于 ECMA262 的、强类型面向对象编程语言)。 处理应用中其他方面的问题,而 ActionScript 用来处理用户交互逻辑。 由于 Flash 平台的 普及, Flex 使开发者可以开发广泛的应用程序。开发者可以使用 工业标准(如 户体验方面有突破性的产品。 Flex Builder (FB ) 之于MXM 就如DREAWEAVER 于HTML FB 实现了代码与界面分开, FLEX 的类程序扩展名为*.as ,语法与java/c++很象,FLEX 程序文件扩展名为.mxml ,其实就是拥 有很多特殊元素的 XML 文件。 ,使用MXM 组件构建用户界面 MXML 语言支持两种用户界面组件类型:控件和容器。容器是包含控件和其他容器的屏幕的 矩形区域。控件是表单元素 , 如按钮、文本字段和列表框。 可以使用Flex MXML 组件浏览工具来查看所有控件的代码和样例。 Flex 语言包含了一个丰富的用户界面组件库, MXML (—种基于XML 的标记语言)和 MXM 用于排布用户界面和 XML ,CSS 和SVC 和他们所熟悉的模式和范例来创建应用。 Flex 的分离协作方式和 Flex 公用组件模 型也使得开发者和界面设计者能更好的进行协作, 在可靠的、 易于维护的架构上生产出在用

1,加入常用可视控件: 使用可视控件组织界面,可以定义组件属性供外部访问

A, 基于文本的控件 (Text controls ): Label ( 单行文本显示 ) 、 Text ( 多行文本显示 ) 、 TextInput ( 单行文本显示与输入 ) 、 TextArea ( 多行行文本显示与输入 ) 和 RichTextEditor ( 富文本显示与输入 ) 控件。用于显示文本和 / 或接收来自用户的文本输入, 都有一个 text 属 性用于设置要显示的文本。 使用 RichTextEditor 控件可以输入文本、 编辑文本和设置文本 格式。用户通过使用位于 RichTextEditor 控件底部的子控件 , 应用文本格式和 URL 链接。 B, 基于按钮的控件组件 (Button 系列,Form controls):Button( 激活时会发出 click 和 buttonDown 事件 ) 、LinkButton ( 用于打开 URL )、CheckBox ( 标签会被自动裁剪以适合控件边 界。 ) 、 RadioButton ( 指由 标签创建的组 ) 和 PopupButton 控件 ( 常用于打开 List 控件或 Menu 控件签。 ) 。 2,加入基于列表的控件,并获取数据 基于列表的控件 : 是在其继承层次结构内的某些点上扩展 ListBase 类的那些控件。 它们包 括 ComboBox 、 List 、 HorizontalList 、 DataGrid 、Tile 、Menu 和 Tree 控件。都可从某数 据提供程序的数据获得数据列表。 另: 许多标准控件 ( 包括 ColorPicker 和 MenuBar 控件 ) 也是数据提供程序控件。 可以使用两种方法设置组件的数据提供程序 Flex Builder 教程 来源: 作者: 时间: 2008-09-15 点击: 224

8种css垂直居中水平居中的绝对定位

8种css垂直居中水平居中的绝对定位 ①绝对定位居中: 我们在css布局中常用到的是margin:0 auto;来居中,一直觉得margin:auto;是不能居中的,但是实现元素居中只需要声明元素高度和下面的css就可以了。 Absolute-center{ margin:auto; position:absolute; top:0; right:0; left:0; bottom:0; } 优点: 1.支持跨浏览器,包括IE8-IE10. 2.无需其他特殊标记,CSS代码量少 3.支持百分比%属性值和min-/max-属性 4.只用这一个类可实现任何内容块居中 5.不论是否设置padding都可居中(在不使用box-sizing属性的前提下) 6.内容块可以被重绘。 7.完美支持图片居中。 缺点: 1.必须声明高度(查看可变高度Variable Height)。 (查看溢出Overflow)。 2.建议设置overflow:auto来防止内容越界溢出。 3.在Windows Phone设备上不起作用。 1)容器内: 内容块的父元素使用相对定位position:relative;使用上述绝对居 中方式可以使内容居中显示于父容器中。 .center-container{ Position:relative; } .absolute-center{ Width:50%; Height:50%; Overflow:auto; Margin:auto;

Position:absolute; Top:0; Left:0; Right:0; Bottom:0; } 2)视区内 想让内容块一直停留在可视区域内?将内容块设置为position:fixed;并设置一个较大的z-index层叠属性值。 .Absolute-Center.is-Fixed { position: fixed; z-index: 999; } 3)边栏 如果你要设置一个固顶的头或增加其他的边栏,只需要在内容块的样式中加入像这样的CSS样式代码:top:70px;bottom:auto;由于已经声明了margin:auto;,该内容块将会垂直居中于你通过top,left,bottom和right属性定义的边界框内。 你可以将内容块固定与屏幕的左侧或右侧,并且保持内容块垂直居中。使用right:0;left:auto;固定于屏幕右侧,使用left:0;right:auto;固定与屏幕左侧。 .Absolute-Center.is-Right { left: auto; right: 20px; text-align: right; } .Absolute-Center.is-Left { right: auto; left: 20px; text-align: left; }

Flex快速入门

Flex 快速入门 无衣 摘自https://www.docsj.com/doc/0e4416425.html,/cn/ (版权归原作者所有)

Flex 快速入门: 使用 MXML 和 ActionScript 进行编码 Adobe? 将 Flex 实施为 ActionScript 类库。 该类库包含组件 (容器和控件)、管理器类、数据服务类和所有其他功能的类。 您通过将 MXML 和 ActionScript 语言与该类库一起使用 来开发应用程序。 MXML MXML 是用于为 Adobe? Flex? 应用程序进行用户界面组件布局的 XML 语言。 您还使用 MXML 来显式定义应用程序的非可视方面, 例如访问服务器端数据源和用户界面组件与数据源之间的数据绑定。 例如, 您通过使用下面的 MXML 语句, 使用 标签来创建 Button 控件的实例: 您设置 id 属性以赋予 Button 实例一个唯一的名称, 以后可以使用该名称引用到它。 label 属性设置在 Button 实例上显示的标签的文本。 下面的示例显示创建显示 Button 控件的 Flex 应用程序所需的完整代码: 在编写 Flex 应用程序之后, 您必须使用 Flex 编译器来编译它。 Flex 编译器是称为 mxmlc 的一个很小的可执行文件, 处于 Flex 2 安装文件夹下的 Flex SDK 2.0\bin 文件夹中。 提示: 确保 Flex 2 installation folder\Flex SDK 2.0\bin 文件夹处于您的系统的路径中。 让 Flex 编译器处于您的路径中, 使您不管当前处于哪个文件夹中, 都可以从命令行调用它。 说明 1.在您喜爱的文本编辑器 (如, 记事本) 中创建一个新文件并将它另存为 MyFirst.mxml。 2.从前面的示例中将代码输入到 MyFirst.mxml 中并保存您的文件。 3.通过选择“开始”>“所有程序”>“附件”>“命令提示符”, 打开命令窗口。 4.将您的当前目录更改为包含您在步骤 1 中保存的 Flex 应用程序的文件夹。 5.键入下面的命令来调用 Flex 编译器: mxmlc --strict=true --file-specs MyFirst.mxml 以双短划线开头的命令字符串中的项目被称为编译器选项, 它们被用于定义 Flex 编译

Flex完全自学入门手册

Flex入门教程 编写日期:2009-02 作者:Dason 主要讲3个主题: 1.Flex是什么,用途和前景; 2.Flex Builder基础; 3.MXML基础; 现在进入第1个主题: 首先我们要明白,flex不是专门用来做网页的,它主要是用来做RIAs的 RIAs=Rich Internet Applications 富英特网应用程序 Flex现在虽然是2.0,以前是1.0和1.5,但是不要担心1.0和1.5版本自己没有用过,因为2.0版本才是Flex真正的开始,首先,Flex2.0的技术基础很高,采用Action Script3.0为编程核心,以FlashPlayer9.0为平台 它与以前版本的区别是 FlashPlayer9.0采用全新的虚拟机,运行速度是8.0的10倍以上 Flash8.0和Flex1.0,1.5,都是Action Script2.0用的FlashPlayer8.0,在性能上,跟Flex2.0的Action Script3.0和FlashPlayer9.0相差太远了 我们现在处于RIAs浏览器时代,意思是,我们用Flex做的程序,必须要用浏览器打开,以网页的形式发布,明年,我们将步入下一个RIAs时代――桌面RIAs时代,我们现在所有用flex2.0做的程序,明年都可以被重新发布成桌面应用程序,就跟我们现在用的软件是一样了,到时候,我们的程序不再被浏览器限制了,flex能做的程序很多,比如QQ这样的即时聊天软件、论坛、股票软件、网络视频聊天、等等。你能想到的基本都能做出来,Flex的前景是一片明朗的,而且越往后越会被广泛采用,这一切都从Flex2.0开始,所以,对于我们来说,这是个前所未有的好机会。现在学flex的人很少很少,如果你等到他已经大面积普及,那就没有竞争力了。 好,现在提问时间,马上要进入下一主题: Flex是纯面向对象语言,C是面向过程语言,ActionScript3.0相对2.0,改动太大了,如果有2.0基础,对3.0帮助不大,所以,如果你第一次接触的就是3.0,也不要紧,3.0删除了很多2.0的东西,而且增加了很多新类,3.0跟JAVA基本没什么区别了,所以,有JAVA基础的人,学起来更快。 AS3的语法跟JAVA一样,有库、包、类、接口这些概念,两者的本质区别是java可以做软件,但局限性很大,比如java界面很差,很多功能比较古老等等 今天第2个主题――Flex Builder2基础 1、打开Flex Builder2 A.新建Flex Project-

相关文档
相关文档 最新文档