欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

AS3.0實(shí)例學(xué)習(xí) 熟悉新的事件機(jī)制和addChild的運(yùn)用

 更新時(shí)間:2007年12月12日 21:51:01   作者:  
首先聲明:本人大菜鳥(niǎo)一個(gè),剛接觸AS3不久,許多理念還沒(méi)來(lái)得及灌輸,這些case都是從網(wǎng)上down的,但因?yàn)榻庹f(shuō)是英文的,不利我們學(xué)習(xí),我就充當(dāng)一個(gè)translater,順便可以讓自己鞏固一下知識(shí)。 水平有限,錯(cuò)誤難免,歡迎大蝦小蝦,大鳥(niǎo)小鳥(niǎo)指正。

下面進(jìn)入正題:

案例1:熟悉新的事件機(jī)制和addChild的運(yùn)用

說(shuō)明:拖動(dòng)小人到滑板上,然后拖動(dòng)滑板,可以發(fā)現(xiàn)小人已經(jīng)跟滑板粘在了一起。
演示:http://www.live-my-life-with-yuyi.com/as3_cases/changing_parents/

代碼:
復(fù)制代碼 代碼如下:

boarder_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
boarder_mc.addEventListener(MouseEvent.MOUSE_UP, drop); 
red_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
red_mc.addEventListener(MouseEvent.MOUSE_UP, drop); 
blue_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
blue_mc.addEventListener(MouseEvent.MOUSE_UP, drop); 

AS3采用了新的監(jiān)聽(tīng)機(jī)制,而且注意到對(duì)每個(gè)mc的鼠標(biāo)按下彈起都使用了相同的函數(shù),這就需要在函數(shù)里判斷事件的發(fā)生者,從而做出相應(yīng)的處理。

復(fù)制代碼 代碼如下:

function drag(event:MouseEvent):void 

    if(event.target.name == "boarder_mc") 
    { 
        addChild(boarder_mc); 
        event.target.startDrag(true); 
        boarder_mc.x = mouseX; 
        boarder_mc.y = mouseY; 
    } 
    else 
    { 
    event.target.startDrag(); 
    } 


通過(guò)event.target.name來(lái)取得事件發(fā)生的對(duì)象名,AS3里沒(méi)有了root,addChild相當(dāng)于把某個(gè)mc搬到了舞臺(tái)上,其實(shí)是TimeLine0.addChild(mc),同時(shí)保證該mc是在舞臺(tái)的最頂層(AS3里沒(méi)有了深度管理)。
通過(guò)event.target來(lái)獲取事件發(fā)生的對(duì)象

接著來(lái)看drop函數(shù)

復(fù)制代碼 代碼如下:

function drop(event:MouseEvent):void 

    event.target.stopDrag(); 
    if(boarder_mc.hitTestObject(red_mc)) 
    { 
        red_mc.addChild(boarder_mc); 
        boarder_mc.x = 0; 
        boarder_mc.y = 0; 
    } 
    else if(boarder_mc.hitTestObject(blue_mc)) 
    { 
        blue_mc.addChild(boarder_mc); 
        boarder_mc.x = 0; 
        boarder_mc.y = 0; 
    } 

當(dāng)鼠標(biāo)彈起時(shí),啥也不管,先停止拖動(dòng),如果小人和滑板有重合區(qū)域,則將小人放到滑板里,滑板就像一個(gè)container,boarder_mc成了red_mc的child,將boarder_mc的x坐標(biāo)和y坐標(biāo)清零是為了將小人放到滑板的正確位置。

如果小人已經(jīng)成為了滑板的child,那么再次拖動(dòng)滑板時(shí),由于又執(zhí)行了一次addChild(boarder_mc);所以滑板的父類(lèi)又變成了舞臺(tái)。

整個(gè)案例1的分析到此結(jié)束,涉及的知識(shí)點(diǎn)不多,主要是熟悉一下AS3的語(yǔ)法。
打包下載

相關(guān)文章

最新評(píng)論