下面是我的AS3代码:AS3 - 如何在事件处理函数中获取对象的名称?
public function load_swfs(event:Event)
{
var loader:Loader = event.target.getChildAt(0) as Loader;
var mc:MovieClip = loader.content as MovieClip;
var mc_name = 'somethingGeneratedElsewhere';
this.animations[mc_name] = mc;
}
// --------------------------------------------------------------------
public function add(mc_name)
{
//this.animations is a object that holds a bunch of dynamically loaded SWF files.
addChild(this.animations[mc_name]);
this.animations[mc_name].addEventListener(Event.ENTER_FRAME, enter_frame_handler);
}
// --------------------------------------------------------------------
public function enter_frame_handler(e:Event)
{
//how do I get mc_name in this function
// Example, if I run add('movie123'). How do I get 'movie123' in this function?
}
如果我运行添加( 'movie123')。如何在enter_frame_handler函数中获取字符串'movie123'?
UPDATE
这个论坛后(Click Here)介绍我遇到的问题,但不提供我正在寻找解决方案。幸运的是@kapep提供了一个简单的解决方案来解决这个问题。
返回一个动画片段。我需要字符串格式的名称。如果`this.animations ['awesomeMovie']`那么我需要在`enter_frame_handler'中获得'awesomeMovie'。那可能吗?我尝试了`e.target.name`并得到`instance5`或类似的东西。 – zechdc 2011-12-17 04:03:26
你可以将代码添加到`this.animations`集合吗? 'e.target.name`属性与您在代码中使用的名称是分开的。另外,你打算怎么处理字符串?请记住,在这种情况下,this.animations [“awesomeMovie”]指的是与“e.target”相同的对象。 – 2011-12-17 04:25:47