如何从库中动态添加对象?

Posted

技术标签:

【中文标题】如何从库中动态添加对象?【英文标题】: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

...

【问题讨论】:

【参考方案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 库,那么此答案将解决您的问题。

【讨论】:

不客气!快乐的编码..哦,如果你愿意的话,把这个答案标记为你想要的答案!

以上是关于如何从库中动态添加对象?的主要内容,如果未能解决你的问题,请参考以下文章

Android - 如何从相机捕获图像或从库中添加

Mysql-高可用集群生产环境-动态添加从库

如何使用 Flash JavaScript 文件 (.jsfl) 将库中的对象添加到舞台?

Git从库中移除已删除大文件

markdown 从库中添加mixins

[UNIX]:我是不是需要在项目的 makefile 中添加所有库,这些库从库中使用,在我的项目中使用?