当前位置 :主页>知识堂>Flex专区教程>列表

Flex 中在表单(Form组件)上填加动画效果(Effect)

时间:2008-04-08 来源:www.nshen.net  作者:N神   点击:
    核心提示:FormItem的 visible 和 includeInLayout 属性就绑定到这个 advanced 值上, 前者负责显示和隐藏,后者负责计算位置,可以看一下文档...
首先我们建立了一个 private bindable 变量叫做 "advanced" 当点击"Toggle" 按钮时 这个值就会改变。

FormItem的 visible 和 includeInLayout 属性就绑定到这个 advanced 值上, 前者负责显示和隐藏,后者负责计算位置,可以看一下文档 :)

要注意的是Effect是放在FormItem中的。

完整代码在下边:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
 xmlns:mx="http://www.adobe.com/2006/mxml"
>
 <mx:Script>
 <![CDATA[
 import mx.effects.easing.Bounce;
 import mx.controls.Alert;
 
 [Bindable] private var advanced : Boolean = false;
 
 private function onClick() : void
 {
 
 //only toggle if not playing
 if( !ef_move.isPlaying )
 {
 
 advanced = !advanced;
 
 }
 
 }

 ]]>
 </mx:Script>
 
 <!-- this is the move effect I am using -->
 <mx:Move
 id = "ef_move"
 easingFunction="Bounce.easeOut"
 />
 
 <mx:Panel
 title = "Form Example"
 width = "300"
 height = "350"
 
 >
 
 <mx:Form
 width = "100%"
 height = "100%"
 >
 
 <mx:FormItem>
 
 <mx:Button
 label = "Toggle Form"
 click = "onClick()"
 width = "140"
 />
 
 </mx:FormItem>

 <mx:FormItem
 label = "First Name:"
 moveEffect = "ef_move"
 >
 
 <mx:TextInput />
 
 </mx:FormItem>
 
 <mx:FormItem
 label = "Last Name:"
 moveEffect = "ef_move"
 visible = "{advanced}"
 includeInLayout = "{advanced}"
 showEffect = "Fade"
 >
 
 <mx:TextInput />
 
 </mx:FormItem>

 <mx:FormItem
 label = "Email:"
 moveEffect = "ef_move"
 >
 
 <mx:TextInput />
 
 </mx:FormItem>
 
 <mx:FormItem
 label = "Address 1:"
 visible = "{advanced}"
 includeInLayout = "{advanced}"
 showEffect = "Fade"
 moveEffect = "ef_move"
 >
 
 <mx:TextInput />
 
 </mx:FormItem>
 
 <mx:FormItem
 label = "Address 2:"
 visible = "{advanced}"
 includeInLayout = "{advanced}"
 showEffect = "Fade"
 moveEffect = "ef_move"
 >
 
 <mx:TextInput />
 
 </mx:FormItem>
 
 <mx:FormItem
 label = "Address 3:"
 visible = "{advanced}"
 includeInLayout = "{advanced}"
 showEffect = "Fade"
 moveEffect = "ef_move"
 >
 
 <mx:TextInput />
 
 </mx:FormItem>
 
 <mx:FormItem
 label = "Password:"
 moveEffect = "ef_move"
 >
 
 <mx:TextInput displayAsPassword="true" />
 
 </mx:FormItem>
 
 <mx:FormItem
 moveEffect = "ef_move"
 >

 <mx:Button
 label = "Send Info!"
 click = "Alert.show('I hope you like my example!');"
 />

 </mx:FormItem>
 
 </mx:Form>
 

 </mx:Panel>
 
</mx:Application>

加不加弹性效果区别就在于:

如果你想加个easing 效果(Back, Bounce, Elastic, etc),只要指定Move的easingFunction就可以了。
<mx:Script>
 <![CDATA[

 import mx.effects.easing.Bounce;

 ]]>
</mx:Script>

 <mx:Move id = "ef_move" easingFunction="Bounce.easeOut" />
上一篇:在 Flex 中设置进度条(ProgressBar)完成时效果的例子     下一篇:在Flex中当组件的visible值改变时引发一个动画效果(Effect)
版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
特别注意:本站所提供的源文件,电子书,第三软件,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。
 评论内容:(最新评论共有 0) 位网友发表了评论不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码: 匿名? 马上注册
 
 
知识堂分类
 
本站所提供的所有素材版权归原作者所有,本站只供网友参考与交流,未经作者同意请勿用于商业用途
服务器带宽提供:零刻数据 本站CDN由海诺互动提供技术支持。 下载带宽支持:重庆万网
京ICP备08051668号