【问题标题】:AS3 Scope issue, How do I dynamically create a new MC in a package/class?AS3 范围问题,如何在包/类中动态创建新的 MC?
【发布时间】:2011-01-14 15:34:48
【问题描述】:

非常感谢您的宝贵时间!这是我的问题,...

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

如何在一个方法中创建一个新的 MovieClip,它可以在整个类中使用,而不是在类的顶部定义它?并且对于加分,不使用返回。

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

【问题讨论】:

    标签: actionscript-3 class scope movieclip


    【解决方案1】:

    不知道我是否完全理解你,但听起来你想要访问动态创建的影片剪辑而不明确定义它?!那正确吗? 如果是这样,那么你可以做你现在所拥有的,但添加一个检索方法:

    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;
    }
    

    您还可以为动态创建的影片剪辑添加名称属性:

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

    然后你可以像这样检索:

    this.getChildByName("new_MC");
    

    再次不知道我是否理解您的确切要求 干杯 埃里克 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 2017-07-27
      • 1970-01-01
      • 2015-07-05
      相关资源
      最近更新 更多