这更像是一个关于编写代码的问题,而不是一个特定的问题(尽管它是一个特定的问题)。请注意,我是自学的,所以如果这是一个非常简单的问题,我不知道很多:
我有一个电影剪辑,我为它创建了一个类。在我的主要时间线上,我使用该函数中的变量在函数中将其实例化(addChild),例如:
function myfunction():void {
var newInstance:MovieClip = new myCreatedClassForTheMovieClip();
addChild(newInstance);
....
}
在我的影片剪辑中,我在主时间轴上引用了一个变量:movieClipVar = MovieClip(root).mainTimeLineVariable;
我收到错误错误 #1009:无法访问空对象引用的属性或方法。
当我在函数之外但在全局级别为影片剪辑的新实例进行变量声明时,我没有收到该错误但是,当我尝试 removeChild(newInstance) 时,我收到编译器错误 1120:未定义的访问属性 newInstance (这确实有意义,因为它尚未实例化)。
所以,我不确定这两个对象是如何一起工作的(实例化的影片剪辑和主时间线),以及为什么即使使用 MovieClip(root) 指向那里,影片剪辑也无法在时间线上看到变量。
感谢您对此提供任何帮助或指导。
干杯,
麦克风
编辑:当我声明newInstance
全局时,我在函数中以相同的方式实例化它,只是省略 var 语句并使用addChild(newInstance)
.
这是删除影片剪辑的函数:
function postResponseCleanUp(): void {
switch (lessonStep) {
case 1 :
break;
case 2 :
break;
case 3 :
break;
case 4 :
//removeChild(screenPrint); <<previous way
removeChild(getChildByName("screenPrintName")); // cludgy way
removeChild(getChildByName("idaWkSheetName"));
if (userRole == 1) { // witness
faderOverlay.visible = false;
instructionsCallout.callout_ta.htmlText ="<font size ='6'>The <font color='#0000FF'>Reconciler</font> continues processing the notes, repeating this process <i>for each deonmination</i>.<br><br>Click <b>Next</b> to see the next steps in the process.</font>";
} else {
instructionsCallout.callout_ta.htmlText ="<font size ='6'>You continue processing the notes, repeating this process <i>for each deonmination</i>.<br><br>Click <b>Next</b> to see the next steps in the process.</font>";
}
removeChild(pointerNew);
idaWkSheet.removeEventListener(MouseEvent.ROLL_OVER,boardOver);
//screenPrint.removeEventListener(MouseEvent.ROLL_OVER,boardOver);
Mouse.show();
break;
case 5 :
break;
}
}