Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3-类型错误:错误“1009”;空";在MethodInfo_Actionscript 3_Flash_Actionscript_Actionscript 2 - Fatal编程技术网

Actionscript 3 AS3-类型错误:错误“1009”;空";在MethodInfo

Actionscript 3 AS3-类型错误:错误“1009”;空";在MethodInfo,actionscript-3,flash,actionscript,actionscript-2,Actionscript 3,Flash,Actionscript,Actionscript 2,我有一个小项目。每次单击按钮时更改的帧,以及箭头内进度条的模拟 stop(); /** initializtios **/ var trans:ColorTransform = next_arrow.transform.colorTransform; var p:int = 1; var myColorTransform = new ColorTransform(); myColorTransform.color = 0x42f498; var trans1:ColorTransform =

我有一个小项目。每次单击按钮时更改的帧,以及箭头内进度条的模拟

stop();
/** initializtios **/
var trans:ColorTransform = next_arrow.transform.colorTransform;
var p:int = 1;

var myColorTransform = new ColorTransform();
myColorTransform.color = 0x42f498;
var trans1:ColorTransform = back_arrow.transform.colorTransform;

/** actual code **/
btn_next_arrow.addEventListener(MouseEvent.CLICK, function goNextLectFrame(e:MouseEvent):void {
    if (p==1) {
        fill_1.transform.colorTransform = myColorTransform;
        fill_22.alpha = 0.00001;
        fill_3.alpha = 0.00001;
        fill_33.alpha = 0.00001;
        fill_5.alpha = 0.00001;
        fill_6.alpha = 0.00001;
        fill_7.alpha = 0.00001;
        fill_8.alpha = 0.00001;
        fill_9.alpha = 0.00001;
        fill_10.alpha = 0.00001;
        fill_11.alpha = 0.00001;
        fill_12.alpha = 0.00001;
        fill_13.alpha = 0.00001;
        fill_14.alpha = 0.00001;
        fill_151.alpha = 0.00001;
        ++p;
    }
    switch (currentFrame) {
        case 1:
            gotoAndStop(2);
            break;
        case 2:
            fill_22.transform.colorTransform = myColorTransform;
            gotoAndStop(3);
            break;
        case 3:
            fill_3.transform.colorTransform = myColorTransform;
            gotoAndStop(4);
            break;
        case 4:
            fill_33.transform.colorTransform = myColorTransform;
            gotoAndStop(5);
            break;
        case 5:
            fill_5.transform.colorTransform = myColorTransform;
            gotoAndStop(6);
            break;
        case 6:
            fill_6.transform.colorTransform = myColorTransform;
            gotoAndStop(7);
            break;
        case 7:
            fill_7.transform.colorTransform = myColorTransform;
            gotoAndStop(8);
            break;
        case 8:
            fill_8.transform.colorTransform = myColorTransform;
            gotoAndStop(9);
            break;
        case 9:
            fill_9.transform.colorTransform = myColorTransform;
            gotoAndStop(10);
            break;
        case 10:
            fill_10.transform.colorTransform = myColorTransform;
            gotoAndStop(11);
            break;
        case 11:
            fill_11.transform.colorTransform = myColorTransform;
            gotoAndStop(12);
            break;
        case 12:
            fill_12.transform.colorTransform = myColorTransform;
            gotoAndStop(13);
            break;
        case 13:
            fill_13.transform.colorTransform = myColorTransform;
            gotoAndStop(14);
            break;
        case 14:
            fill_14.transform.colorTransform = myColorTransform;
            gotoAndStop(15);
            break;
        case 15:
            fill_151.transform.colorTransform = myColorTransform;
            gotoAndStop(16);
            break;
        case 16:
            gotoAndStop(17);
            break;
    }
});

btn_next_arrow.addEventListener(MouseEvent.MOUSE_OVER, function hovering(e:MouseEvent):void {
    trans.color = uint(0x606266);
    next_arrow.transform.colorTransform = trans;
});

btn_back_arrow.addEventListener(MouseEvent.MOUSE_OVER, function hovering1(e:MouseEvent):void {
    trans1.color = uint(0x606266);
    back_arrow.transform.colorTransform = trans1;
});

btn_next_arrow.addEventListener (MouseEvent.MOUSE_OUT, function hideShadow(event:MouseEvent):void {
    trans.color = uint(0x999999);
    next_arrow.transform.colorTransform = trans;
});

btn_back_arrow.addEventListener (MouseEvent.MOUSE_OUT, function hideShadow1(event:MouseEvent):void {
    trans1.color = uint(0x999999);
    back_arrow.transform.colorTransform = trans1;
});

btn_back_arrow.addEventListener(MouseEvent.CLICK, function goPrevLectFrame(e:MouseEvent):void {
        switch(currentFrame){
        case 2:
            gotoAndStop(1);
            break;
        case 3:
            gotoAndStop(2);
            break;
        case 4:
            gotoAndStop(3);
            break;
        case 5:
            gotoAndStop(4);
            break;
        case 6:
            gotoAndStop(5);
            break;
        case 7:
            gotoAndStop(6);
            break;
        case 8:
            gotoAndStop(7);
            break;
        case 9:
            gotoAndStop(8);
            break;
        case 10:
            gotoAndStop(9);
            break;
        case 11:
            gotoAndStop(10);
            break;
        case 12:
            gotoAndStop(11);
            break;
        case 13:
            gotoAndStop(12);
            break;
        case 14:
            gotoAndStop(13);
            break;
        case 15:
            gotoAndStop(14);
            break;
        case 16:
            gotoAndStop(15);
            break;
        }
});

btn_main_menu.addEventListener(MouseEvent.CLICK, function goPrevLectFrame1(e:MouseEvent):void {
    gotoAndStop(17);
});
问题是,当我到达最后一帧并单击“下一步”按钮时,它会显示:

TypeError:错误#1009:。。。“空”。在 函数/()[RECOVER\u shitty\u fla.main时间线::frame1:114]

这是一个引起问题的函数:

btn_next_arrow.addEventListener (MouseEvent.MOUSE_OUT, function hideShadow(event:MouseEvent):void {
    trans.color = uint(0x999999);
    next_arrow.transform.colorTransform = trans; // LINE 114
});

我在这里真的很挣扎,将感谢任何帮助,提前感谢。

在进入最后一帧之前,您需要删除事件侦听器。您的程序仍在侦听该帧上不存在的对象上的
MouseEvent
s

此外,我会听取@Badfeering的建议内联函数是不好的做法,通常应避免使用。

这段代码还有其他问题(大部分是次要的)。我已经调整了FLA文档中的代码以使程序正常工作。请参见下面的更改


第1-16帧 第17帧
在进入最后一帧之前,需要删除事件侦听器。您的程序仍在侦听该帧上不存在的对象上的
MouseEvent
s

此外,我会听取@Badfeering的建议内联函数是不好的做法,通常应避免使用。

这段代码还有其他问题(大部分是次要的)。我已经调整了FLA文档中的代码以使程序正常工作。请参见下面的更改


第1-16帧 第17帧
很可能,这意味着当该行运行时,
next\u箭头
不存在。此外,侦听器上的内联函数是内存泄漏的快车道。@BadfeelingAbout这是的,我想是这样的,但我认为下一个箭头确实存在于该帧上,它只是不存在于下一帧上,在下一帧上单击按钮实际上会让我们在鼠标悬停在下一个箭头上。无论如何,谢谢。关于内联函数,您的建议是什么?我应该如何包装它们?很可能,这意味着当该行运行时,
next\u arrow
不存在。此外,侦听器上的内联函数是内存泄漏的快车道。@BadfeelingAbout这是的,我想是这样的,但我认为下一个箭头确实存在于该帧上,它只是不存在于下一帧上,在下一帧上单击按钮实际上会让我们在鼠标悬停在下一个箭头上。无论如何,谢谢。您的建议是关于内联函数的,我应该如何包装它们?亲爱的@phasma,非常感谢您,现在它像手表一样工作。更重要的是,感谢您澄清removeListener,我正在慢慢进入as3。我一定会坚持你关于内联函数的建议。再次感谢你!很抱歉,由于我的原因,您不得不提高代码质量:)@Monstryyy,而您正在听取建议。。。将代码放在一个帧中,将任何多帧视觉效果放在舞台上的电影IP中(与代码第1帧相同,但新的不同层),然后使用一帧代码控制“内容”MClip本身移动到其他帧。。。这意味着您的代码不必在
stage
的其他帧上重复,但您可以通过MClip显示新帧(因此它必须与stage大小相同)。PS:你可以从舞台到MC剪切/粘贴画面。此外,如果需要,您可以选择对象并右键单击将其转换为MClip etc..@VC.One Thx以获取建议。是的,我明白你的建议,似乎比我的意大利面代码更有效。谢谢,现在我需要好好想想。亲爱的@phasma,非常感谢你,现在它像手表一样工作。更重要的是,感谢您澄清removeListener,我正在慢慢进入as3。我一定会坚持你关于内联函数的建议。再次感谢你!很抱歉,由于我的原因,您不得不提高代码质量:)@Monstryyy,而您正在听取建议。。。将代码放在一个帧中,将任何多帧视觉效果放在舞台上的电影IP中(与代码第1帧相同,但新的不同层),然后使用一帧代码控制“内容”MClip本身移动到其他帧。。。这意味着您的代码不必在
stage
的其他帧上重复,但您可以通过MClip显示新帧(因此它必须与stage大小相同)。PS:你可以从舞台到MC剪切/粘贴画面。此外,如果需要,您可以选择对象并右键单击将其转换为MClip etc..@VC.One Thx以获取建议。是的,我明白你的建议,似乎比我的意大利面代码更有效。谢谢,现在我需要集中精力。
stop();

import flash.events.MouseEvent;
import flash.system.fscommand;
import flash.display.StageScaleMode; 
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.geom.ColorTransform;

/** initializtios **/
var trans:ColorTransform = next_arrow.transform.colorTransform;
var p:int = 1;
var myColorTransform = new ColorTransform();
myColorTransform.color = 0x42f498;
var trans1:ColorTransform = back_arrow.transform.colorTransform;

/** actual code **/
btn_next_arrow.addEventListener(MouseEvent.CLICK, goNextLectFrame);
function goNextLectFrame(e:MouseEvent):void {
    if (p==1) {

        fill_1.transform.colorTransform = myColorTransform;
        fill_22.alpha = 0.00001;
        fill_3.alpha = 0.00001;
        fill_33.alpha = 0.00001;
        fill_5.alpha = 0.00001;
        fill_6.alpha = 0.00001;
        fill_7.alpha = 0.00001;
        fill_8.alpha = 0.00001;
        fill_9.alpha = 0.00001;
        fill_10.alpha = 0.00001;
        fill_11.alpha = 0.00001;
        fill_12.alpha = 0.00001;
        fill_13.alpha = 0.00001;
        fill_14.alpha = 0.00001;
        fill_151.alpha = 0.00001;
        ++p;
    }
    switch (currentFrame) {
        case 1:
            gotoAndStop(2);
            break;
        case 2:
            fill_22.transform.colorTransform = myColorTransform;
            gotoAndStop(3);
            break;
        case 3:
            fill_3.transform.colorTransform = myColorTransform;
            gotoAndStop(4);
            break;
        case 4:
            fill_33.transform.colorTransform = myColorTransform;
            gotoAndStop(5);
            break;
        case 5:
            fill_5.transform.colorTransform = myColorTransform;
            gotoAndStop(6);
            break;
        case 6:
            fill_6.transform.colorTransform = myColorTransform;
            gotoAndStop(7);
            break;
        case 7:
            fill_7.transform.colorTransform = myColorTransform;
            gotoAndStop(8);
            break;
        case 8:
            fill_8.transform.colorTransform = myColorTransform;
            gotoAndStop(9);
            break;
        case 9:
            fill_9.transform.colorTransform = myColorTransform;
            gotoAndStop(10);
            break;
        case 10:
            fill_10.transform.colorTransform = myColorTransform;
            gotoAndStop(11);
            break;
        case 11:
            fill_11.transform.colorTransform = myColorTransform;
            gotoAndStop(12);
            break;
        case 12:
            fill_12.transform.colorTransform = myColorTransform;
            gotoAndStop(13);
            break;
        case 13:
            fill_13.transform.colorTransform = myColorTransform;
            gotoAndStop(14);
            break;
        case 14:
            fill_14.transform.colorTransform = myColorTransform;
            gotoAndStop(15);
            break;
        case 15:
            fill_151.transform.colorTransform = myColorTransform;
            btn_next_arrow.removeEventListener(MouseEvent.MOUSE_OVER, hovering);
            btn_next_arrow.removeEventListener(MouseEvent.MOUSE_OUT, hideShadow);
            btn_back_arrow.removeEventListener(MouseEvent.MOUSE_OVER, hovering1);
            btn_back_arrow.removeEventListener(MouseEvent.MOUSE_OUT, hideShadow1);
            gotoAndStop(16);
            break;
        case 16:
            gotoAndStop(17);
            break;
    }
}

btn_next_arrow.addEventListener(MouseEvent.MOUSE_OVER, hovering);
function hovering(e:MouseEvent):void {
    trans.color = uint(0x606266);
    next_arrow.transform.colorTransform = trans;
}

btn_back_arrow.addEventListener(MouseEvent.MOUSE_OVER, hovering1);
function hovering1(e:MouseEvent):void {
    trans1.color = uint(0x606266);
    back_arrow.transform.colorTransform = trans1;
}

btn_next_arrow.addEventListener (MouseEvent.MOUSE_OUT, hideShadow);
function hideShadow(event:MouseEvent):void {
    trans.color = uint(0x999999);
    next_arrow.transform.colorTransform = trans;
}

btn_back_arrow.addEventListener (MouseEvent.MOUSE_OUT, hideShadow1);
function hideShadow1(event:MouseEvent):void {
    trans1.color = uint(0x999999);
    back_arrow.transform.colorTransform = trans1;
}

btn_back_arrow.addEventListener(MouseEvent.CLICK, goPrevLectFrame);
function goPrevLectFrame(e:MouseEvent):void {
        switch(currentFrame){
        case 2:
            gotoAndStop(1);
            break;
        case 3:
            gotoAndStop(2);
            break;
        case 4:
            gotoAndStop(3);
            break;
        case 5:
            gotoAndStop(4);
            break;
        case 6:
            gotoAndStop(5);
            break;
        case 7:
            gotoAndStop(6);
            break;
        case 8:
            gotoAndStop(7);
            break;
        case 9:
            gotoAndStop(8);
            break;
        case 10:
            gotoAndStop(9);
            break;
        case 11:
            gotoAndStop(10);
            break;
        case 12:
            gotoAndStop(11);
            break;
        case 13:
            gotoAndStop(12);
            break;
        case 14:
            gotoAndStop(13);
            break;
        case 15:
            gotoAndStop(14);
            break;
        case 16:
            gotoAndStop(15);
            break;
        }
}

btn_main_menu.addEventListener(MouseEvent.CLICK, goPrevLectFrame1);
function goPrevLectFrame1(e:MouseEvent):void {
    gotoAndStop(17);
}
stop();
import flash.events.MouseEvent;

btn_goto_lect1.alpha = 0.00001;
btn_goto_pract.alpha = 0.00001;

btn_goto_lect1.addEventListener (MouseEvent.MOUSE_OVER, showShadow);
function showShadow(event:MouseEvent):void {
    btn_goto_lect1.alpha = 1;
}

btn_goto_lect1.addEventListener (MouseEvent.MOUSE_OUT, hideShadow_);
function hideShadow_(event:MouseEvent):void {
    btn_goto_lect1.alpha = 0.00001;
}

btn_goto_pract.addEventListener (MouseEvent.MOUSE_OVER, showShadow1);
function showShadow1(event:MouseEvent):void {
    btn_goto_pract.alpha = 1;
}

btn_goto_pract.addEventListener (MouseEvent.MOUSE_OUT, hideShadow2);
function hideShadow2(event:MouseEvent):void {
    btn_goto_pract.alpha = 0.00001;
}

btn_goto_lect1.addEventListener (MouseEvent.CLICK, showShadow3);

function showShadow3(event:MouseEvent):void {
    btn_goto_lect1.removeEventListener (MouseEvent.MOUSE_OVER, showShadow);
    btn_goto_lect1.removeEventListener (MouseEvent.MOUSE_OUT, hideShadow_);
    btn_goto_pract.removeEventListener (MouseEvent.MOUSE_OVER, showShadow1);
    btn_goto_pract.removeEventListener (MouseEvent.MOUSE_OUT, hideShadow2);
    gotoAndStop(1);
}