AS3.0 實(shí)例學(xué)習(xí) 熟悉tween以及tweenEvent的運(yùn)用
更新時(shí)間:2007年12月12日 21:55:47 作者:
案例3:熟悉tween以及tweenEvent的運(yùn)用
說(shuō)明:點(diǎn)擊標(biāo)簽載入特定的圖片說(shuō)明(其實(shí)是一個(gè)mc,只是坐標(biāo)不同),同時(shí)還有漸隱漸現(xiàn)效果,沒(méi)做loading,可能載入會(huì)有點(diǎn)慢。
演示:
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;
先是導(dǎo)入一些需要用到的類,然后定義幾個(gè)坐標(biāo),這幾個(gè)坐標(biāo)都是一個(gè)大mc的不同位置。
然后是初始化tween類,并對(duì)tween類監(jiān)聽(tīng)。
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);
實(shí)例化xTween,yTween后并不會(huì)馬上就運(yùn)行,如果在之后的代碼發(fā)現(xiàn)了stop動(dòng)作的話。這些參數(shù)跟AS2并沒(méi)有多大差別。
xTween和yTween是實(shí)現(xiàn)mc的緩動(dòng)效果,inTween和outTween是實(shí)現(xiàn)漸隱漸現(xiàn)效果的。
這里只監(jiān)聽(tīng)xTween而沒(méi)有監(jiān)聽(tīng)yTween,因?yàn)檫@兩個(gè)是同時(shí)進(jìn)行的所以監(jiān)聽(tīng)一個(gè)就行了。
最后是對(duì)3個(gè)按鈕的click監(jiān)聽(tīng)。
接下來(lái)就是最關(guān)鍵的上面提到的幾個(gè)函數(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();
}
先來(lái)看看navigate函數(shù),這是被3個(gè)按鈕共同調(diào)用的函數(shù),通過(guò)判斷不同的target.name設(shè)置不同的setTween。
再來(lái)看看setTween,參數(shù)tweenX和tweenY是目標(biāo)坐標(biāo),tweenMC是目標(biāo)mc,通過(guò)設(shè)置begin,finish,obj參數(shù)來(lái)改變xTween和yTween的初始坐標(biāo),目標(biāo)坐標(biāo),作用對(duì)象,最后調(diào)用start函數(shù)開(kāi)始運(yùn)動(dòng)。
fadeIn函數(shù)的作用是使inTween開(kāi)始,并且將inTween作用的對(duì)象賦予outTween,這樣outTween被調(diào)用的時(shí)候就能作用在正確的mc上了。
打包文件
說(shuō)明:點(diǎn)擊標(biāo)簽載入特定的圖片說(shuō)明(其實(shí)是一個(gè)mc,只是坐標(biāo)不同),同時(shí)還有漸隱漸現(xiàn)效果,沒(méi)做loading,可能載入會(huì)有點(diǎn)慢。
演示:
http://www.live-my-life-with-yuyi.com/as3_cases/dynamic_with_events/
代碼:
初始化,給一些變量賦值
復(fù)制代碼 代碼如下:
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;
然后是初始化tween類,并對(duì)tween類監(jiān)聽(tīng)。
復(fù)制代碼 代碼如下:
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);
實(shí)例化xTween,yTween后并不會(huì)馬上就運(yùn)行,如果在之后的代碼發(fā)現(xiàn)了stop動(dòng)作的話。這些參數(shù)跟AS2并沒(méi)有多大差別。
xTween和yTween是實(shí)現(xiàn)mc的緩動(dòng)效果,inTween和outTween是實(shí)現(xiàn)漸隱漸現(xiàn)效果的。
這里只監(jiān)聽(tīng)xTween而沒(méi)有監(jiān)聽(tīng)yTween,因?yàn)檫@兩個(gè)是同時(shí)進(jìn)行的所以監(jiān)聽(tīng)一個(gè)就行了。
最后是對(duì)3個(gè)按鈕的click監(jiān)聽(tīng)。
接下來(lái)就是最關(guān)鍵的上面提到的幾個(gè)函數(shù)
復(fù)制代碼 代碼如下:
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();
}
先來(lái)看看navigate函數(shù),這是被3個(gè)按鈕共同調(diào)用的函數(shù),通過(guò)判斷不同的target.name設(shè)置不同的setTween。
再來(lái)看看setTween,參數(shù)tweenX和tweenY是目標(biāo)坐標(biāo),tweenMC是目標(biāo)mc,通過(guò)設(shè)置begin,finish,obj參數(shù)來(lái)改變xTween和yTween的初始坐標(biāo),目標(biāo)坐標(biāo),作用對(duì)象,最后調(diào)用start函數(shù)開(kāi)始運(yùn)動(dòng)。
fadeIn函數(shù)的作用是使inTween開(kāi)始,并且將inTween作用的對(duì)象賦予outTween,這樣outTween被調(diào)用的時(shí)候就能作用在正確的mc上了。
打包文件
相關(guān)文章
as腳本之loadMovie完全實(shí)現(xiàn)教程
as腳本之loadMovie完全實(shí)現(xiàn)教程...2007-03-03AS3.0實(shí)例學(xué)習(xí) 熟悉新的事件機(jī)制和addChild的運(yùn)用
AS3.0實(shí)例學(xué)習(xí) 熟悉新的事件機(jī)制和addChild的運(yùn)用...2007-12-12Flash中常用到的ActionScript控制語(yǔ)句用法
Flash中常用到的ActionScript控制語(yǔ)句用法...2007-03-03幫助你學(xué)習(xí) Flash / ActionScript的12個(gè)網(wǎng)站
Adobe Flash是一個(gè)很好的技術(shù),該技術(shù)允許開(kāi)發(fā)人員加入的互動(dòng)性和平穩(wěn)的動(dòng)畫(huà)網(wǎng)頁(yè)。 其受歡迎程度是如此巨大,您可以看到許多網(wǎng)站,致力于幫助開(kāi)發(fā)者有興趣在閃光。2008-12-12AS3.0 通過(guò)類來(lái)實(shí)現(xiàn)一個(gè)gallery
AS3.0 通過(guò)類來(lái)實(shí)現(xiàn)一個(gè)gallery...2007-12-12