我目前有两个名为mcInvFrame的影片剪辑,一个名为btnCloseInv(它是一个movieclip,我知道命名约定是错误的)。 btnCloseInv位于mcInvFrame内。我有两个文件Inventory.as和我的主文档类。我可以很好地加载mcInvFrame到舞台,一切都按预期工作。但是,当我尝试访问btnCloseInv movieclip时,我收到错误。这是Inventory.as的代码我已经评论了我最近的失败尝试
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中为我可以从主文档访问的按钮创建一个变量吗?如果是这样的话?
P.S。我一直在搜索论坛并尝试各种解决方案,但我要么不理解实施,要么他们不适合这种情况。我收到的最常见的错误是“错误#1009:无法访问空对象引用的属性或方法。”偶尔我会收到一条错误,指出对象没有属性。
答案 0 :(得分:0)
你无法在stage.movieclip.movieclip2上注册事件,我之前尝试过做同样的事情,但它不会工作,尝试在外面创建btnCloseInv,然后使用这段代码
btnCloseInv.x = mcInvFrame.x + numberHere;
btnCloseInv.y = mcInvFrame.y + numberHere2;
如果您不想使用此代码AS3 - Button inside MovieClip triggers MC's event
编辑:如果您设置mcInvFrame.buttonMode = true
则无效