在Animate CC中,我可以使用以下代码从库中动态添加MovieClips:
var MovieClipName_mc:MovieClipFromLibrary = new MovieClipFromLibrary();
stage.addChild(MovieClipName_mc);
我想即时更改要添加的MovieClip,因此需要将“ MovieClipFromLibrary”作为变量。但是,我似乎什么也没用。
我希望我已经正确解释了吗?帮助极大的赞赏。谢谢!
答案 0 :(得分:1)
类似getDefinitionByName(...)方法的方法应该起作用。
WM_KEYDOWN
您还可以制作一个函数//# setup the vars
var myVar :String = "MovieClipFromLibrary";
var MovieClipName_mc :Class;
//# apply the vars and add to screen
MovieClipName_mc = getDefinitionByName( myVar ) as Class;
stage.addChild(MovieClipName_mc);
来添加多个变量,如下所示:
实施:
createInstance
用法:
import flash.utils.getDefinitionByName;
function createInstance(avalue:*):*
{
var C:Class;
if (avalue is Class)
{
C = avalue as Class;
}
else if (avalue is String)
{
// If there is actually a class in library
// with the provided class name, then
// C will be filled with a valid class.
C = getDefinitionByName(aname) as Class;
}
if (C != null)
{
return new C;
}
else
{
return null;
}
}
请记住,您只能以这种方式访问当前 SWF 的类。如果您希望它从加载的 SWF 中获取内容,则需要设置某种库管理器并通过Loader.contentLoaderInfo。applicationDomain。{{3}来获取内容。 }(...)方法。
答案 1 :(得分:1)
那个确切的代码对我不起作用。它给了我一个隐式的强制错误。但是,它非常有用,因为它确实有效...
//Get Item from library
var MCName:Class = getDefinitionByName('TEST') as Class;
var MovieClip_mc:MovieClip = new MCName();
stage.addChild(MovieClip_mc);
非常感谢!! ???