【发布时间】:2013-07-01 23:29:21
【问题描述】:
我目前有两个影片剪辑,一个名为 mcInvFrame,一个名为 btnCloseInv(这是一个影片剪辑,我知道命名约定是错误的)。 btnCloseInv 位于 mcInvFrame 内。我有两个文件 Inventory.as 和我的主文档类。我可以将 mcInvFrame 加载到舞台上,一切都按预期工作。但是,当我尝试访问 btnCloseInv 电影剪辑时,我得到了错误。这是 Inventory 的代码。因为我已经注释掉了我最近失败的尝试
package{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Inventory extends MovieClip
{
public var inv:MovieClip = new mcInvFrame;
public function Inventory()
{
addChild(inv);
/*var invClose:MovieClip = inv.btnCloseInv;
invClose.addEventListener(MouseEvent.CLICK, CloseInventory);
function CloseInventory($e:MouseEvent):void
{
this.parent.removeChild(inv);
}*/
}
}
}
我需要知道的是我可以/应该在inventory.as 中创建一个变量,我可以从主文档中访问该按钮吗?如果有怎么办?
附:我一直在搜索论坛并尝试各种解决方案,但我要么不了解实现,要么它们不适合这种情况。我收到的最常见错误是“错误 #1009:无法访问空对象引用的属性或方法”。有时我会收到一条错误消息,指出对象没有属性。
【问题讨论】:
-
您确定在 btnCloseInv 上放置了实例名称吗?如果你有,我认为你的代码应该可以工作。
-
好吧,我已经找到了合适的工作,但这不是我所希望的。在 Inventory.as 我添加了一个关闭按钮的实例并将其放置在我想要的位置时,我能够让按钮工作。我想访问 mcInvFrame 影片剪辑中的按钮以工作,但我似乎无法弄清楚如何在另一个影片剪辑中创建影片剪辑的实例。