如何从 Flash 中的类中命名 Movieclip 中的 Movieclip?
Posted
技术标签:
【中文标题】如何从 Flash 中的类中命名 Movieclip 中的 Movieclip?【英文标题】:How can I name Movieclips in a Movieclip from a Class in Flash? 【发布时间】:2017-10-17 15:43:20 【问题描述】:我在一个影片剪辑中放置了很多相同的影片剪辑。我想给它们命名,但是为它们每个手动命名会很烦人,所以我想通过 actionscript 来命名。
我有一个名为 item_Potion
的 Movieclip 类 (unrelated),当它运行构造函数时,我们将 1 添加到名为 itemNumber
的全局变量中,然后我们把名字命名为name = String("item" + itemNumber);
,简单来说,我们把它命名为item + itemNumber
为了清楚起见,这个类被绑定到这个 Movieclip item_Potion。
现在问题来了:
当我尝试通过 name = String("item" + itemNumber);
更改名称时,我收到以下错误:
Error: Error #2078: The name property of a Timeline-placed object cannot be modified.
at flash.display::DisplayObject/set name()
at item_Potion()[E:\g\item_Potion.as:33]
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at mc_Map()[E:\g\mc_Map.as:15]
at Game()[E:\g\Game.as:82]
所以现在这是我的问题,我怎样才能在没有错误的情况下从类中命名电影剪辑?
【问题讨论】:
【参考方案1】:将“时间轴放置对象的“name
属性”视为将引用该对象的“变量标记”,因此需要不可变为错误消息指出!
一个合理的解决方法是为对象分配一个自定义类(可能派生自
MovieClip
类),其中有一个专用字段来保存对象的特定 name:
public class MySpecialMC extends MovieClip
public var objName:String;
快速 解决方法是为对象提供 MovieClip
类的 dynamic class,并将“name”存储在动态属性中:
myObj['objName'] = 'item' + itemNumber;
【讨论】:
以上是关于如何从 Flash 中的类中命名 Movieclip 中的 Movieclip?的主要内容,如果未能解决你的问题,请参考以下文章