修改舞台大小会导致错误 - Flash CC

时间:2014-04-01 06:46:35

标签: actionscript-3 flash flash-cc

我有一个带有2个场景的应用程序,第一个场景包含4个动画片段,它们被手动放入场景中,每个movieClip都有一个实例名称(mc1,mc2..mc4),,我用这个对象创建一个数组var arr:Array = [mc1..mc4]; 我为它们添加了一个鼠标事件监听器(ar i中的var i){i.addEvent ... mouse.click)};

在这个场景中,我还有一个“下一个场景”按钮,其中包含以下代码:nextScene(); 在第二个场景中,我有一个“后退”按钮,其中包含以下代码:prevScene(); 我的应用程序尺寸为1200 x 720像素,我想要800 x 600,所以当我手动更改时。 当我运行应用程序时,一切都很好,转到下一个场景,当我按回来时,它在第一个场景时给我一个错误

for each(var i in arr){
 i.addEvent...mouse.click)
};

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at Main/frame2()
    at flash.display::MovieClip/prevScene()
    at Main/onBack()

当我追踪mc1时,首先运行scene1时输出为// movieclip 当我按下时,输出为// null 如果我追踪arr,输出是//,movieclip,movieclip,movieclip(仅限第一个逗号) 可能是什么问题?谢谢

场景1代码:

stop();
trace(mc1); // first run -> object [MovieClip]
           // when back pressd -> null


var selectedIm:MovieClip = mc1;
var selectedD = d1; 
var difficulty:uint = 3;
var imgs:Array = [mc1,mc2,mc3,mc4];
var diff:Array = [d1,d2,d3,d4];

goBtn.addEventListener(MouseEvent.CLICK, onGo);

for each(var i in imgs){
    i.addEventListener(MouseEvent.CLICK, onImage); //here is the error, NULL OBJECT
}

function onGo(e:MouseEvent):void{ //next button
    new Clk().play();
    nextScene();
}

function onImage(e:MouseEvent):void{
    new Clk().play();
    if(selectedIm) selectedIm.filters = [];
    selectedIm = e.target as MovieClip;
    addOutline(selectedIm,0xFFFFFF,6); 
}

...

场景2代码:

...
    function onBack(e:MouseEvent):void{
    new Clk().play();
    removeChild(pz);
    timer.reset();
    timer.stop();
    timer.removeEventListener(TimerEvent.TIMER, numara);
    prevScene();
  ....

}

0 个答案:

没有答案