AS3 Addeventlistener到movieclip中的movieclip

时间:2013-07-01 23:29:21

标签: actionscript-3 movieclip

我目前有两个名为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:无法访问空对象引用的属性或方法。”偶尔我会收到一条错误,指出对象没有属性。

1 个答案:

答案 0 :(得分:0)

你无法在stage.movi​​eclip.movi​​eclip2上注册事件,我之前尝试过做同样的事情,但它不会工作,尝试在外面创建btnCloseInv,然后使用这段代码

btnCloseInv.x = mcInvFrame.x + numberHere;
btnCloseInv.y = mcInvFrame.y + numberHere2;

如果您不想使用此代码AS3 - Button inside MovieClip triggers MC's event

编辑:如果您设置mcInvFrame.buttonMode = true则无效