【问题标题】:How to dynamically add an Object from Library?如何从库中动态添加对象?
【发布时间】:2012-11-17 01:34:56
【问题描述】:

我在库中有一些电影剪辑,我想制作将它们加载到舞台的功能。我的问题是,除了为每个 MovieClip 制作单独的函数之外,我找不到不同的解决方案。我正在寻找类似的东西:

function addAnyClip(name){
  //create new object 'name'
  stage.addChild(chosenObject);
  rest of code
}

因为它比:

function addClip1(){
  var mc1:Clip1 = new Clip1;
  stage.addChild(mc1);
  ///rest of code
}

function addClip2(){
  var mc1:Clip2 = new Clip2;
  stage.addChild(mc2);
  ///rest of code
}

function addClip3(){
  var mc1:Clip3 = new Clip3;
  stage.addChild(mc3);
  ///rest of code
}
...

【问题讨论】:

    标签: actionscript-3 flash movieclip


    【解决方案1】:

    考虑使用getDefinitionByName

    您将执行以下操作:

    var mcClass:Class = getDefinitionByName("NameOfClipInLibrary")

    然后创建一个类类型为mcClass的新对象

    这里有几个链接可以帮助解释如何使用它... http://www.jesseknowles.com/blog/dynamically_attaching_movieclips_in_as3/

    http://www.emanueleferonato.com/2011/03/31/understanding-as3-getdefinitionbyname-for-all-eval-maniacs/

    【讨论】:

      【解决方案2】:

      这将巩固您在上面显示的内容:

      function addChildOfType(type:Class):void{
          var mc:type = new type();
          stage.addChild(mc);
      }
      

      使用这个只需调用:

      addChildOfType(Clip1);
      addChildOfType(Clip2);
      addChildOfType(Clip3);
      

      编辑:

      如果您的库是外部加载的 swf,则 @M. Laing 在如何获得它们方面是正确的。如果您的库是同一个 Flash 文件中的 Flash 库,那么此答案将解决您的问题。

      【讨论】:

      • 不客气!快乐的编码..哦,如果你愿意的话,把这个答案标记为你想要的答案!
      猜你喜欢
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-25
      • 2016-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多