【问题标题】:As3 Adding MC from Libary and accesing content inside loaded MCAs3 从库中添加 MC 并访问加载的 MC 中的内容
【发布时间】:2013-04-29 22:14:22
【问题描述】:

我有一个从库加载的电影剪辑,并且我已正确链接它以导出名称为 myMC。这个movieclip 包含另一个movieClip 和一些属性。让我们在里面调用movieClip:insideMC

这是我的代码:

function loadScreen()
{
    var newMC:MovieClip = new myMC();
    addChild(newMC);
    loadButtons();
}

function loadButtons()
{
    newMC.insideMC.addEventListener(MouseEvent.CLICK, homeButtons);
}

loadScreen();

但是,当我在 loadScreen() 函数中调用函数 loadButtons() 时,我会收到此错误。

TypeError: Error #1009: Cannot access a property or method of a null object reference.
        at iRosary_fla::MainTimeline/loadButtons()[iRosary_fla.MainTimeline::frame1:83]
        at iRosary_fla::MainTimeline/loadScreen()[iRosary_fla.MainTimeline::frame1:110]
        at iRosary_fla::MainTimeline/frame1()[iRosary_fla.MainTimeline::frame1:103]

它没有看到insideMC。也许是因为它正在调用快速或尚未加载。它正在调用并加载newMC tho。只是函数loadButtons() 不起作用,因为它没有看到insideMC 电影剪辑。我确信这是一个简单的解决方法,但我无法在任何地方找到它。谢谢

【问题讨论】:

    标签: actionscript-3 flash loading flash-cs6


    【解决方案1】:

    newMC 是您的 loadScreen() 方法中的局部变量,因此它在您的 loadButtons() 方法中没有作用域。

    newMC声明为类成员变量,它的作用域在loadButtons()

    例如:

    // in class declarations
    public var newMC:MovieClip;
    
    function loadScreen()
    {
        newMC = new myMC();
        addChild(newMC);
        loadButtons();
    }
    

    理解这一点很重要:

    var newMC:MovieClip = new myMC();
    

    创建一个局部变量。从您的 cmets 看来,您确实将 newMC 作为类变量。因此,您假设上面的行将新实例分配给您的类成员 newMC,而不是您创建的局部变量。

    【讨论】:

    • 我实际上只使用 Flash 为我创建的类。所以我把这段代码贴在我的actionscirpt的顶部:var newMC:MovieClip;我仍然收到错误消息。我可以进入库并单击属性,然后将一些内容添加到正在加载的 myMC 类中,如果这是您的意思。
    • 你是对的。我在函数中有这一行: var newMC:MovieClip = new myMC();这是制作一个新的 var 而不是调用旧的。非常感谢!
    【解决方案2】:

    不完全确定这是您的问题。但是要访问影片剪辑中的影片剪辑,您必须在第一个影片剪辑中为“insideMC”提供一个实例名称。否则,您将引用一个尚未添加到舞台的对象 - 一个空对象。

    实例名称教程here

    【讨论】:

    • 它在影片剪辑中有一个实例名称,当它从一开始就在舞台上时它工作正常,但是当我尝试动态加载它时它没有。我还必须给它一个动态实例名称吗?它里面已经有一个硬编码,我正在调用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多