繁体   English   中英

AS3范围问题,如何在包/类中动态创建新的MC?

[英]AS3 Scope issue, How do I dynamically create a new MC in a package/class?

非常感谢你花时间陪伴! 这是我的问题,...

public function addNewMc():void{
    var newMC:MovieClip= new MovieClip();
    this.addChild(newMC);
}
public function removeOldMc(newMC):void{
    this.removeChild(newMC);
}

如何在方法中创建一个新的MovieClip,该方法可在整个类中使用,而无需在类的顶部进行定义? 并获得额外积分,无需使用退货。

如果第一个函数addNewMc返回值newMC并将其传递给任何其他方法,则可以使它工作,但是对于我正在写的东西,我希望将我的返回值用完其他东西。 谢谢!

不知道我是否完全了解您,但是听起来您想在不显式定义的情况下访问动态创建的Movieclip? 那正确吗? 如果是这样,那么您可以做您现在所拥有的,但是添加一种检索方法:

public function addNewMc():void{
    var newMC:MovieClip= new MovieClip();
    this.addChild(newMC);
}

public function getMC():MovieClip
{
    var len:uint = this.numChildren;
    while(len--)
    {
      var tempObj:* = this.getChildAt(len);
      if(tempObj is MovieClip)
         return MovieClip(tempObj);
     }
     return null;
}

您还可以将name属性添加到动态创建的动画片段中:

public function addNewMc():void
{
    var newMC:MovieClip= new MovieClip();
    newMC.name = "new_MC";
    this.addChild(newMC);
}

您可以像这样检索:

this.getChildByName("new_MC");

再一次,不知道我是否理解您的确切要求,干杯吧;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM