我有一个从Libary加载的movieClip,我已经正确地将它链接到了一个名为myMC的导出中。这个电影包含另一个movieclip和一些属性。让我们调用内部的movieClip:insideMC。
这是我的代码:
function loadScreen()
{
var newMC:MovieClip = new myMC();
addChild(newMC);
loadButtons();
}
function loadButtons()
{
newMC.insideMC.addEventListener(MouseEvent.CLICK, homeButtons);
}
loadScreen();然而,当我在loadButtons() loadScreen() 函数中调用函数时,就会得到这个错误。
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 movieClip。我相信这是一个简单的解决办法,但我哪儿也找不到。谢谢
发布于 2013-04-29 22:19:09
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();创建一个局部变量。从您的注释中可以看出,您确实将newMC作为类变量。因此,假设上面的行将新实例分配给您的类成员newMC,而不是您创建的局部变量。
发布于 2013-04-29 22:18:22
不完全确定这是你的问题。但是要在电影剪辑中访问电影剪辑,您必须在第一个电影剪辑中给"insideMC“一个实例名。否则,您将引用未添加到舞台的对象-空对象。
关于实例名称这里的教程
https://stackoverflow.com/questions/16289141
复制相似问题