相关文章:通过实例学习flash AS3.0——案例二
首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。
水平有限,错误难免,欢迎大虾小虾,大鸟小鸟指正。
下面进入正题:
案例3:熟悉tween以及tweenEvent的运用
说明:点击标签载入特定的图片说明(其实是一个mc,只是坐标不同),同时还有渐隐渐现效果,没做loading,可能载入会有点慢。
演示: http://www.live-my-life-with-yuyi.com/as3_cases/dynamic_with_events/
代码:
初始化,给一些变量赋值
import fl.transitions.Tween; import fl.transitions.easing.*; import fl.transitions.TweenEvent; var homeX:Number = -301; var homeY:Number = 110; var newsX:Number = -17; var newsY:Number = -777; var aboutX:Number = -1354; var aboutY:Number = -445; var xTween:Tween; var yTween:Tween; var inTween:Tween; var outTween:Tween;
先是导入一些需要用到的类,然后定义几个坐标,这几个坐标都是一个大mc的不同位置。
然后是初始化tween类,并对tween类监听。
xTween = new Tween(main_mc,"x",Strong.easeInOut,main_mc.x,homeX,2,true); yTween = new Tween(main_mc,"y",Strong.easeInOut,main_mc.y,homeY,2,true); inTween = new Tween(main_mc.home_mc,"alpha",None.easeNone,0,1,.5,true); outTween = new Tween(main_mc.home_mc,"alpha",None.easeNone,1,0,.5,true); xTween.addEventListener(TweenEvent.MOTION_FINISH,fadeIn); xTween.addEventListener(TweenEvent.MOTION_START,fadeOut); home_btn.addEventListener(MouseEvent.CLICK, navigate); news_btn.addEventListener(MouseEvent.CLICK, navigate); about_btn.addEventListener(MouseEvent.CLICK, navigate);
实例化xTween,yTween后并不会马上就运行,如果在之后的代码发现了stop动作的话。这些参数跟AS2并没有多大差别。 xTween和yTween是实现mc的缓动效果,inTween和outTween是实现渐隐渐现效果的。 这里只监听xTween而没有监听yTween,因为这两个是同时进行的所以监听一个就行了。 最后是对3个按钮的click监听。
接下来就是最关键的上面提到的几个函数
function navigate(event:MouseEvent):void { if(event.target == home_btn) { setTween(homeX,homeY,main_mc.home_mc); } else if(event.target == news_btn) { setTween(newsX,newsY,main_mc.news_mc); } else { setTween(aboutX,aboutY,main_mc.about_mc); } } function setTween(tweenX:Number,tweenY:Number,tweenMC:MovieClip):void { xTween.begin = main_mc.x; yTween.begin = main_mc.y; xTween.finish = tweenX; yTween.finish = tweenY; tweenMC.alpha = 0; inTween.obj = tweenMC; xTween.start(); yTween.start(); } function fadeIn(event:TweenEvent):void { inTween.start(); outTween.obj = inTween.obj; } function fadeOut(event:TweenEvent):void { outTween.start(); }
|