Actionscript 3 实例名称属性不起作用

Posted

技术标签:

【中文标题】Actionscript 3 实例名称属性不起作用【英文标题】:Actionscript 3 instance name property not working 【发布时间】:2016-03-18 05:26:50 【问题描述】:

我有一个名为 third_scene_border 的影片剪辑符号类,我创建了 12 个此类的实例,如下所示:

public var border_1:third_scene_border = new third_scene_border();

public var border_2:third_scene_border = new third_scene_border();

public var border_3:third_scene_border = new third_scene_border();

以此类推,我还将第一个实例的名称设置为“first_border”,如下所示:

border_1.name = "first_border";

然后当我追踪它的名字时,我得到“实例(一些数字)”。

为什么没有正确设置 name 属性?我已经为很多其他实例完成了它,并且它工作得很好。我正在尝试查看可拖动对象被拖放到哪个边框上。

编辑:当我编写 trace(border_1.name) 时,我得到“first_border”,但是当我添加一个监听点击并放置的事件监听器时

trace(event.target.name);

在它的函数中,我得到了实例(一些数字)。

编辑:trace(event.target.parent.name);返回 first_border 是正确的,但是当我尝试在 MouseEvent.MOUSE_UP 的函数中跟踪 dropTarget 时,如下所示:trace(event.target.dropTarget.parent.name),我收到以下错误: TypeError:错误 #1009:无法访问空对象引用的属性或方法。 在 mainClass/up()

【问题讨论】:

至少显示您的代码以更了解情况... 【参考方案1】:

很难为您的情况找到 100% 的解决方案,因为您没有通过添加事件侦听器附加代码部分。但是,我敢猜测,您应该尝试使用 event.currentTarget 参数而不是 event.target

您可以在这里阅读更多关于这两个属性的差异:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#target

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#currentTarget

【讨论】:

我试过 event.currentTarget.dropTarget.parent.name 并且他们都返回实例(一些数字) 这是正确答案。 currentTarget 是注册监听器的对象,target 是事件源的对象。它们可以是同一个对象,也可以不是,在你的情况下它们不是。 @DimitarVelev 请给我们看一下添加监听器函数的代码,下一行代码:trace(event.target.name);

以上是关于Actionscript 3 实例名称属性不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Actionscript 3.0 调用 Javascript 不起作用?

Actionscript 导航不起作用

ActionScript 3 实例化一个对象并将其添加到显示列表并一次性给它一个名称

Actionscript 3 对象相交时意外修改类属性

ActionScript - 联系表单不起作用

Objective C综合变量下划线前缀不起作用