2012-04-11 89 views
0

我已經有幾部動畫片段從庫中添加到舞臺中,在動畫片段內部有一些我想要控制的MC,這裏是我的腳本。AS3控制兒童動畫片夾

if (selectDiffText.text == "Collection 1 Easy") 
    { 
     var c1_easy:cartoonEasy = new cartoonEasy(); 
     addChild(c1_easy); 
     c1_easy.x = 412; 
     c1_easy.y = 400; 
     TweenMax.from(c1_easy, 0.5, {alpha:0, ease:Expo.easeOut}); 
    } 
    else if (selectDiffText.text == "Collection 1 Medium") 
    { 
     var c1_medium:cartoonMedium = new cartoonMedium(); 
     addChild(c1_medium); 
     c1_medium.x = 412; 
     c1_medium.y = 400; 
     TweenMax.from(c1_medium, 0.5, {alpha:0, ease:Expo.easeOut}); 
    } 
else 
    { 
     trace("ERROR!"); 
    } 

以上代碼將從庫如果selectDiffText變化加載特定的movieclip。

var movieList:Array = [cartoonMedium1,cartoonMedium2,cartoonMedium3,cartoonMedium4,cartoonMedium5,cartoonMedium6]; 

function getRandomMovie():MovieClip 
{ 
    var index:int = Math.floor(Math.random() * movieList.length); 
    var mcClass:Class = movieList.splice(index,1)[0]; 
    return new mcClass(); 
} 
playGame = getRandomMovie(); 
addChild(playGame); 

讓說,如果被添加到c1_medium階段,c1_medium也將隨機添加的影片剪輯的1來自於它的庫。

瑣事 MC的內部,我已經mouseTarget.alpha = 0; ...我如何從根層面控制它? c1_easy也有mouseTarget.alpha = 0。

+0

你究竟想要這段代碼做什麼? – Jordan 2012-04-11 01:51:48

+0

每個c1_easy和c1_medium都有mc叫做mouseTarget,但每次我只是將c1_easy或c1_medium加載到舞臺上。我想控制mouseTarget的alpha值。 水平是這樣的舞臺> c1_easy/c1_medium>瑣事 我想是從根/臺,以控制這玩笑其中加入由任何c1_easy或c1_medium – pizza0502 2012-04-11 03:32:56

回答

0

要做到這一點很容易,c1_easyc1_medium都應擴展相同的類。例如:

class c1_easy extends CartoonGenericClass{[...]} 

class c1_medium extends CartoonGenericClass{[...]} 

CartoonGenericClass,你將有可變mouseTarget。您使用的getter/setter使這個公開:

protected var _mouseTarget:Number; 

public function get mouseTarget():Number{ 
    return _mouseTarget; 
} 

public function set mouseTarget(value:Number):void{ 
    // (should probably do some verification on "value" here) 
    _mouseTarget.alpha = value; 
} 

這將允許訪問變量mouseTarget(注意,沒有下劃線)從任何對象可以訪問任何c1_easyc1_medium

c1_easy.mouseTarget = 0; 
c1_medium.mouseTarget = .3; 

等等。這是標準的面向對象,所以它可能是破解文檔的時候了。 HTH!

+0

對不起,我不是在類的代碼非常熟悉mouseTarget。只是爲了讓它在時間軸上編碼?我在時間軸上編碼不是很好...... – pizza0502 2012-04-11 03:33:53

+0

當然,我想。不是相同的方法,但可以通過查看根對象來訪問舞臺上任何對象中的任何對象。 。 。所有顯示對象都有權訪問它。我有一段時間沒有這樣做,但我認爲格式會是'_root.c1_whatever.mouseTarget'。但是,您必須小心地將'c1_whatever'添加到根,而不是其他對象。所以:'_root.addChild(c1_whatever)'。但是,所有這些都告訴我,您將通過學習ActionScript 3.0獲得巨大的收益。嘗試使用FlashDevelop開始,並閱讀一些「Hello world」教程以開始。 – iND 2012-04-11 03:58:54