惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
C
Cybersecurity and Infrastructure Security Agency CISA
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Know Your Adversary
Know Your Adversary
S
Securelist
I
Intezer
AWS News Blog
AWS News Blog
L
LINUX DO - 热门话题
P
Privacy International News Feed
Recent Announcements
Recent Announcements
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 聂微东
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
The GitHub Blog
The GitHub Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Schneier on Security
Schneier on Security
N
Netflix TechBlog - Medium
爱范儿
爱范儿
B
Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
Hacker News: Ask HN
Hacker News: Ask HN
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
Blog — PlanetScale
Blog — PlanetScale
WordPress大学
WordPress大学
S
Secure Thoughts
K
Kaspersky official blog
N
News | PayPal Newsroom
O
OpenAI News
Last Week in AI
Last Week in AI
C
Check Point Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cyberwarzone
Cyberwarzone
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tor Project blog
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
D
Docker
Hugging Face - Blog
Hugging Face - Blog
T
Threat Research - Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
博客园 - 司徒正美
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
P
Palo Alto Networks Blog

博客园 - 帅死活该

Flex各类型坐标转换(全局、本地、内容坐标间转换) Oracle Spatial中的空间索引 [转] ORACLE纯SQL实现多行合并一行[转] Oracle提供的序号函数 FLEX动态创建事件 自定义组件开发 第二节 MXML组件开发 Flex项目调试及日志记录 Flex或Flash的跨域访问的解决方案 - 帅死活该 - 博客园 ArcEngine数据删除几种方法和性能比较[转] - 帅死活该 - 博客园 组件服务-计算机-我的电脑右键无属性,组件服务打不开 FLEX中使用BitmapFill的source属性指定SVG类文件 - 帅死活该 - 博客园 [转]ArcSDE数据被锁定后的解锁方法 ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上[转] 一个ArcGIS网络分析的最短路径例子||A Network Analyst Shortest Route of ArcGIS[转] ArcGIS的网络分析[转] Flex动画效果与变换(三)[转] Flex的动画效果与变换!(二)[转] Microsoft 解决方案框架 — MSF 项目管理准则 v. 1.1[转] 如何在Silverlight中与HTML DOM交互
Flex动画效果与变换(一)[转]
帅死活该 · 2009-09-21 · via 博客园 - 帅死活该

在Flex里面不像在Flash里面随意制作动画了,Flex更趋向于应用程序,而不是动画制作了,所以没有了时间轴的概念。在Flex中使用动画效果, 可以用Flex自带的Effect,或者自已定制Effect,因为很多人都想借Flash里面的一样操作Flex,比如在Flash里面做一个动态按钮 很容易,当鼠标移动到上面时,会有很多发光的点跑出来(荧火虫效果),这种效果在Flash十分容易实现,但在Flex里面要实现这种效果就不是那么简单 的了,下面说说在Flex里的的动务效果的使用与自定义制作。
首先介绍一下Flex里面的自带的效果有以下几种:
Blur         模糊效果
Move         移动效果
Fade         淡入淡出效果
Glow         发光效果
Resize         调整大小效果
Rotate         旋转效果
Zoom         缩放效果
WipeLeft 用遮罩实现画面收放效果,下同,分别为不同方向
WipeRight
WipeUp
WipeDown
不同的效果所需要设置的属性也不一样,比如Blur效果需要设置它的X与Y轴的模糊像素
<mx:Blur id=”blur” blurXFrom=”0″ blurXTo=”10″ />
而Move效果需要设置移动的位置信息
<mx:Move id=”moveEffect” xFrom=”-100″ />
其它设置可以参考Flex语言参考
下面说说如何使用这些效果。要运行这些效果有两种方法:一种是调用该效果的play()方法,另外一种是使用触发器来触发效果。
(1)使用play()方法:
先看效果:在线播放
以下代码:
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”>
<mx:Script>
<![CDATA[
private function onClick(event:Event):void {
be.target = event.currentTarget;
be.play( );
}
]]>
</mx:Script>
<mx:Blur id=”be” blurXTo=”50″ blurYTo=”50″ duration=”1000″ />
<mx:Panel id=”p” width=”200″ height=”180″ click=”onClick(event)” />
</mx:Application>
在 代码中看到,要使用效果,先定好一个效果,如上面的<mx:Blur …>该标签就是模糊效果的MXML标签,定好效果后在Panel的点击事件里再对该效果进行一些设置,如be.target = event.currentTarget 设置该效果将要应用到的目标组件(Component),之后再调用play()方法后,该效果就会应用在Panel上面播放!
(2)使用触发器播放效果:
使用触发器播放效果的话,可以不用写ActionScript代码,直接在组件的效果触发器上指明使用哪个效果就可以了,比较简单明了,但就不能进行更多的属性定制,而用AS控制播放的话,可以对效果进行很多的设置再相应根据情况播放,先看看触发器播放的代码:
以下代码:
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”>
<mx:Blur id=”be” blurXTo=”50″ blurYTo=”50″ duration=”2000″ />
<mx:Panel id=”p” width=”200″ height=”180″ creationCompleteEffect=”{be}” />
</mx:Application>
看以上代码,先写好了Blur的效果并设置好属性后,duration=”2000″这个是播放的时间以毫秒为单位。
在Panel标签里有这样一句:creationCompleteEffect=”{be}” 这个就是触发器,是该Panel组件的效果触发器,当Panel组件加载完成时,会由系统自动调用该效果触发器,触发器里面指了触发 be 这个Blur效果
在Flex里面还有很多触发器如:
addedEffect                          被添加进容器时触发效果
removedEffect                     被从容器中移除时触发效果
creationCompleteEffect 被创建成功时触发效果
focusInEffect                         获得焦点时触发
focusOutEffect                      失去焦点时触发
hideEffect                              被隐藏时(visible=false)触发
showEffect                             被显示时(visible=true)触发
rollOverEffect                     鼠标经过时触发
rollOutEffect                      鼠标离开时触发
mouseDownEffect             鼠标按下时触发
mouseUpEffect                 鼠标松开时触发
moveEffect                          被移动时触发
resizeEffect                         被重整大小时触发
注 意:这些都是效果触发器,不要与事件触发器混乱了。事件触发器是rollOver,事件触发器与效果触发器差不多,事件触发器是当用户执行相就操作时触发 事件,将会调用自定的事件触发处理函数,而效果触发器是执行相应操作时被触发并由系统自动调用所定的效果的play()方法。
现在说说效果的一些其它属性:
每个效果都有reverse( )方法,该方法是反向播放,原本由小到大的变化,而调用reverse( );后再运行play()的话,效果将会从大到小进行播放。
但要注意的一点是,reverse( )方法不会自动播放,即是单单调用reverse( );的话,效果并不会播放,他只会记录该效果为倒转,而要再调用play()后倒转效果才会开始播放。而调用pause( )与resume( )就是暂停与继续播放效果
startDelay这个属性是设置效果的播放延时,以毫秒为单位,即要等待多少毫秒后效果才开始播放,如:
<mx:Blur id=”be” blurXTo=”50″ startDelay=”3000″ />
该模糊效果将会在调用play()之后3秒才开始播放
repeatCount这个属性是设置效果的重复次数,默认为1,设置为0的话就是不停循环播放
<mx:Blur id=”be” blurXTo=”50″ startDelay=”3000″ repeatCount=”5″ />
每个效果都有两个事件:effectStart 与 effectEnd
你可以在该效果事件的处理函数里面对效果作相应的操作,如:
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”>
<mx:Script>
<![CDATA[
import mx.events.EffectEvent;
public function onEffEnd(e:EffectEvent):void{
e.effectInstance.reverse();
e.effectInstance.play();
}
]]>
</mx:Script>
<mx:Blur id=”be” blurXTo=”50″ blurYTo=”50″ duration=”2000″ />
<mx:Panel id=”p” width=”200″ height=”180″ creationCompleteEffect=”{be}” effectEnd=”onEffEnd(event)” />
</mx:Application>
当效果播放完时,系统将会自动触发effectEnd事件,在处理函数里面,将该效果Instance即现时播放的效果实例进行倒转并播放,当播放完,又会触发effectEnd事伯,这样一直循环!
现在再来说说效果的组合:
通常如果你觉得只应用一个效果很单调的话,可以进行效果组合应用,即多个效果同时播放或者顺序播放,
如, 当加载页面时,你想Panel先模糊到一定程度,再将Panel移动到某个位置,再把Panel还原成原来的清淅度(即消退模糊)。这样分析一下,一共用 了三个效果,一,先应用Blur(由清至模)效果,当Blur完成时,再应用Move效果,当Move完成时,再应用另外一个Blur(由模至清)效果。 这样三个效果组合就是按顺序组合,先后运行。先来看看效果:在线播放
再来看看代码:
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”>
<mx:Sequence id=”sequenceEffect”>
<mx:Blur id=”beOut” blurXTo=”50″ blurYTo=”50″ duration=”500″ />
<mx:Move id=”mv” xTo=”200″ yTo=”150″ duration=”500″ />
<mx:Blur id=”beIn” blurXFrom=”50″ blurYFrom=”50″ blurXTo=”0″ blurYTo=”0″ duration=”500″ />
</mx:Sequence>
<mx:Panel id=”p” width=”200″ height=”180″ mouseDownEffect=”sequenceEffect” />
</mx:Application>
看以上代码,<mx:Sequence id=”sequenceEffect”>标签就是顺序组合效果标签,当应用sequenceEffect效果的时候,它会按顺序播放该标签里面的三个子效果。
另外的就是同时播放了,
<mx:Parallel id=”parallelEffect”>
<mx:Blur id=”beOut” blurXTo=”50″ blurYTo=”50″ duration=”500″ />
<mx:Move id=”mv” xTo=”200″ yTo=”150″ duration=”500″ />
</mx:Parallel>
这 个<mx:Parallel>标签就是同时播放的效果标签,放在它里面的子效果都会同时播放,即一边模糊一边移动。这个都可以自由组合,<mx:Parallel>与 <mx:Sequence>标签都可以自由组合,例如先按顺序先播放模糊,再同时播放移动与隐藏等。这里就不多说了。
使用Flex自带的效果基本用法就这些,下篇文章将讨论自定义效果的制作,将会详细说说这篇文章上面说到的 effectInstance 即实例与工厂的概念。