如何解决AS3动态影片剪辑名称为变量
在Animate CC中,我可以使用以下代码从库中动态添加MovieClips:
var MovieClipName_mc:MovieClipFromLibrary = new MovieClipFromLibrary();
stage.addChild(MovieClipName_mc);
我想即时更改要添加的MovieClip,因此需要将“ MovieClipFromLibrary”作为变量。但是,我似乎什么也没用。
我希望我已经正确解释了吗?帮助极大的赞赏。谢谢!
解决方法
类似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}来获取内容。 }(...)方法。
,那个确切的代码对我不起作用。它给了我一个隐式的强制错误。但是,它非常有用,因为它确实有效...
//Get Item from library
var MCName:Class = getDefinitionByName('TEST') as Class;
var MovieClip_mc:MovieClip = new MCName();
stage.addChild(MovieClip_mc);
非常感谢!! ???
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。