Flex小知识点

1、把数组转成字符串 使用String.join()方法:

var myArr:Array = new Array(”one”, “two”, “three”);
var myStr:String = myArr.join(” and “);
trace(myArr); //输出: one,two,three
trace(myStr); //输出: one and two and three

2、把数字取至最近的小数点位,即指定精确度,决定你要取的数字的小数点位数:例如,如果你想把90.337取成90.34,就表示你要取到两位小数点位,也就是说你想取至最近的0.01;可按照如下步骤:1.让输入值除以所选的数字(此例为0.01); 2. 使用Math.round()把步骤1所计得的值取成最近的整数; 3. 把步骤2所得的结果乘以步骤1用于除法的那个值. 例如,要把90.337取成两个小数点位数,可以使用: trace(Math.round(90.337/0.01)*0.01); //输出:90.34。当然也可以使用如下方法:Number.toFixed(2)
3、在数组中获取最小或最大值

var scores:Array = [10, 4, 15, 8];
scores.sort(Array.NUMERIC);
trace(”Minimum: ” + scores[0]);
trace(”Maximum: ” + scores[scores.length - 1]);

4、Flex Builder不能够将代码有效的格式化排版,看一段排版混乱的代码感觉很糟糕。自己排版起来也很痛苦。解决方法:尝试一下这个插件,基于eclipse,同时适用于FB的code formatter plug in:下载地址:http://sourceforge.net/projects/flexformatter/
使用方法:
1.将jar包放在FB或者eclipse的plugins文件夹里
2.重启E或FB,必要时使用-clean参数重启(在FlexBuilder.ini的第一行添加-clean)3.工具栏出现5个新图标,对于一段程序,选中后,点图标,就格式化了.有语法错误的不能格式化
5、ArrayCollection事件监听:ArrayCollection可以为它注册一个集合改变的监听事件(CollectionEvent.COLLECTION_CHANGE),就是一旦 ArrayCollection数组改变就会触发Event,不是所有情况的改变都会触发改变事件,如果集合当中的对象属性没有被绑定,那么你改变它的对象值也是不会触发事件的,在这种情况下你也许可能需要去将对象的属性进行绑定或者通过itemUpdated方法去管理对象值改变,除非集合的长度改变了,事件才会被触发。
6、Flex特效:
1)AnimateProperty
AnimateProperty是用来为组件的属性或样式设置动画的效果。我们可以通过其property属性设定目标对象上需要设置动画效果的属性,然 后设置fromValue属性和toValue属性,为效果提供属性的起始值和结束值。例如下面的代码使用mouseDownEffect触发器,当单击 图片时,触发AnimateProperty效果,在1秒钟内,Image对象的scaleX属性由1变为2,被横向拉伸。代码如下:
<mx:AnimatePropertyid="animateProperty"property="scaleX"fromValue="1
" toValue="2"
duration="1000" />
<mx:Imageid="img"source="assets/plane.png"mouseDownEffect="{animateP
roperty}"/>

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

<mx:Blur id="blurImage" duration="1000" blurXFrom="0.0" blurXTo="10.0"
blurYFrom="0.0" blurYTo="10.0"/>
<mx:Imageid="img"source="assets/plane.png"mouseDownEffect="{blurImage}"/>

3)Dissolve
Dissolve是一种溶解效果。当效果开始播放时,将创建一个不透明的矩形,这个矩形悬浮在目标组件的上方,它的颜色由Dissolve.color属 性设置,此时透明度为“1.0 - Dissolve.alphaFrom”。随着效果的播放,该矩形的alpha属性将从(1.0 - alphaFrom)逐渐变为“1.0 – alphaTo”,直到效果播放完成,矩形被销毁。
如果目标对象是一个容器,那么Dissolve效果将应用于容器内部的内容区域。
下面的代码使用一个CheckBox对象设置Image的visible属性,通过hideEffect和showEffect触发器分别触发各自的Dissolve效果:

<mx:Dissolveid="dissolveOut"duration="1000"alphaFrom="1.0"alphaTo="0
.0"/>
<mx:Dissolveid="dissolveIn"duration="1000"alphaFrom="0.0"alphaTo="1.
0"/>
<mx:CheckBox id="cbx" label="visible" selected="true"/>
<mx:Image source="assets/plane.png" visible="{cbx.selected}"
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效果:

<mx:Fade id="fadeOut" duration="1000" alphaFrom="1.0" alphaTo="0.0"/>
<mx:Fade id="fadeIn" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>
<mx:CheckBox id="cbx" label="visible" selected="true"/>
<mx:Image source="assets/plane.png" visible="{cbx.selected}"
hideEffect="{fadeOut}" showEffect="{fadeIn}"/>

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

<mx:Glow id="glowImage" duration="1000" alphaFrom="1.0" alphaTo="0.3"
blurXFrom="0.0"blurXTo="50.0"blurYFrom="0.0"blurYTo="50.0"color="0x
00FF00"/>
<mx:Image source="assets/plane.png" mouseDownEffect="{glowImage}"/>

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

<mx:Iris id="irisOut" duration="1000" showTarget="true"/>
<mx:Iris id="irisIn" duration="1000" showTarget="false"/>
<mx:Imageid="flex" source="assets/plane.png" visible="{cbx.selected}"
showEffect="{irisIn}" hideEffect="{irisOut}"/>
<mx:CheckBox id="cbx" label="visible" selected="true"/>

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

<?xml version="1.0"?>
<mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"paddingLeft=
"0"
layout="absolute" mouseDown="moveImage();">
<mx:Script>
<![CDATA[
//当按下鼠标时调用该事件
private function moveImage():void {
//停止播放Move效果
moveEffect.end();
//设置目标位置
moveEffect.xTo=mouseX;
moveEffect.yTo=mouseY;
//播放Move效果
moveEffect.play();
}
]]>
</mx:Script>
<mx:Move id="moveEffect" target="{img}"/>
<mx:Image id="img" source="assets/plane.png"/>
</mx:Application>

8)Pause
Pause效果可以实现在指定时间段内不执行任何操作的功能。如果将Pause效果添加为 Sequence效果的子项,可以创建2个其他效果之间的暂停。
9)Rotate
Rotate是一种旋转效果,使组件围绕指定的点旋转。Rotate可以指定旋转中心的坐标(originX和originY属性)及旋转的起始角度 (angleFrom属性)和最终角度(angleTo属性)。起始旋转角度的有效值范围是0~360,而最终角度则可以是正值也可以是负值,默认值为 360。如果angleTo的值比angleFrom的值小,则目标沿逆时针方向旋转,否则以顺时针方向旋转。代码如下:

<mx:Rotate id="rotate" angleFrom="-45" angleTo="0" target="{img}"
duration="2000"/>
<mx:Image id="img" source="assets/plane.png" addedEffect="rotate"/>

10)WipeUp、WipeRight、WipeDown、WipeLeft
这些类定义了4个方向的擦除效果,通常与showEffect和hideEffect触发器配合使用,使用起来非常简便,如下面的例子。
代码清单 WipeSample.mxml

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<!--定义擦除效果-->
<mx:WipeUp id="wipeUpOut" duration="1000"/>
<mx:WipeUp id="wipeUpIn" duration="1000"/>
<mx:WipeLeft id="wipeLeftOut" duration="1000"/>
<mx:WipeLeft id="wipeLeftIn" duration="1000"/>
<mx:WipeDown id="wipeDownOut" duration="1000"/>
<mx:WipeDown id="wipeDownIn" duration="1000"/>
<mx:WipeRight id="wipeRightOut" duration="1000"/>
<mx:WipeRight id="wipeRightIn" duration="1000"/>
<mx:Panel title="Wipe Effects">
<mx:HBox width="100%">
<!--向上擦除-->
<mx:Imagesource="@Embed(source='assets/icon1.png')"visible="{cbx.se
lected}"
hideEffect="{wipeUpOut}" showEffect="{wipeUpIn}"/>
<!--向左擦除-->
<mx:Imagesource="@Embed(source='assets/icon2.png')"visible="{cbx.se
lected}"
hideEffect="{wipeLeftOut}" showEffect="{wipeLeftIn}"/>
<!--向下擦除-->
<mx:Imagesource="@Embed(source='assets/icon3.png')"visible="{cbx.se
lected}"
hideEffect="{wipeDownOut}" showEffect="{wipeDownIn}"/>
<!--向右擦除-->
<mx:Imagesource="@Embed(source='assets/icon4.png')"visible="{cbx.se
lected}"
hideEffect="{wipeRightOut}" showEffect="{wipeRightIn}"/>
</mx:HBox>
<mx:ControlBar>
<mx:CheckBox id="cbx" label="visible" selected="true"/>
</mx:ControlBar>
</mx:Panel>
</mx:Application>

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import flash.events.MouseEvent;
//鼠标事件处理函数
public function doZoom(event:MouseEvent):void {
//如果已经在播放效果了, 则反向播放效果
if (zoom.isPlaying) {
zoom.reverse();
}
//否则播放效果
else {
zoom.play([event.target],event.type==MouseEvent.ROLL_OUT?true:false);
}
}
]]>
</mx:Script>
<mx:Zoom id="zoom" originX="{0}" originY="{0}"
zoomWidthTo="2"zoomHeightTo="2"zoomWidthFrom=".5"zoomHeightFrom=".5
"/>
<mx:Paneltitle="ZoomEffect"width="90%"height="90%"layout="absolute"
paddingTop="5"paddingLeft="10"paddingRight="10"paddingBottom="5">
<mx:Imageid="img"x="100"y="100"source="@Embed(source='assets/car.pn
g')"
scaleX=".5"scaleY=".5"rollOver="doZoom(event)"rollOut="doZoom(event
)"/>
</mx:Panel>
</mx:Application>

附件是我实现这些特效的源代码,本人使用的是flex builder 3。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值