首先聲明:本人大菜鳥一個,剛接觸AS3不久,許多理念還沒來得及灌輸,這些case都是從網(wǎng)上down的,但因為解說是英文的,不利我們學習,我就充當一個translater,順便可以讓自己鞏固一下知識。
水平有限,錯誤難免,歡迎大蝦小蝦,大鳥小鳥指正。
下面進入正題:
案例3:熟悉tween以及tweenEvent的運用
說明:點擊標簽載入特定的圖片說明(其實是一個mc,只是坐標不同),同時還有漸隱漸現(xiàn)效果,沒做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類監(jiān)聽。
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后并不會馬上就運行,如果在之后的代碼發(fā)現(xiàn)了stop動作的話。這些參數(shù)跟AS2并沒有多大差別。 xTween和yTween是實現(xiàn)mc的緩動效果,inTween和outTween是實現(xiàn)漸隱漸現(xiàn)效果的。 這里只監(jiān)聽xTween而沒有監(jiān)聽yTween,因為這兩個是同時進行的所以監(jiān)聽一個就行了。 最后是對3個按鈕的click監(jiān)聽。
接下來就是最關(guān)鍵的上面提到的幾個函數(shù)
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(); }
先來看看navigate函數(shù),這是被3個按鈕共同調(diào)用的函數(shù),通過判斷不同的target.name設置不同的setTween。 再來看看setTween,參數(shù)tweenX和tweenY是目標坐標,tweenMC是目標mc,通過設置begin,finish,obj參數(shù)來改變xTween和yTween的初始坐標,目標坐標,作用對象,最后調(diào)用start函數(shù)開始運動。
fadeIn函數(shù)的作用是使inTween開始,并且將inTween作用的對象賦予outTween,這樣outTween被調(diào)用的時候就能作用在正確的mc上了。
源文件下載
經(jīng)典論壇討論: http://bbs.blueidea.com/thread-2807809-1-1.html
本文鏈接:http://www.95time.cn/tech/multimedia/2007/5089.asp
出處:藍色理想
責任編輯:moby
◎進入論壇RIA設計與應用版塊參加討論
|