2012-04-11 92 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