【问题标题】:Error 1046 and 1119错误 1046 和 1119
【发布时间】:2012-11-30 13:54:29
【问题描述】:

您好,我遇到了 2 个似乎无法解决的错误。虽然看起来应该问题不大。

package  {

import flash.display.MovieClip; //line 3
import flash.events.MouseEvent;


public class video01 extends MovieClip {


    public function video01() {
        // constructor code
        import flash.events.MouseEvent;

        trace("movieclip 1 geladen");

        btn_terug.addEventListener(MouseEvent.CLICK.terug); //line 16


    }


    public function terug(evt:MouseEvent):void {
    trace("knop ingedrukt");

    }


}

}

错误是: 第 3 行 1046:找不到类型或不是编译时常量:btn_terug。 第 16 行 1119:通过静态类型 String 的引用访问可能未定义的属性 terug。

有什么想法吗?


编辑

这是我的主要代码,它位于 .fla 的时间轴上:

import fl.video.*;
import flash.events.MouseEvent;
import flash.display.MovieClip;

stop();

btn_1.addEventListener(MouseEvent.CLICK,speel1);
btn_2.addEventListener(MouseEvent.CLICK,speel2);
btn_3.addEventListener(MouseEvent.CLICK,speel3);
btn_4.addEventListener(MouseEvent.CLICK,speel4);
btn_5.addEventListener(MouseEvent.CLICK,speel5);
btn_6.addEventListener(MouseEvent.CLICK,speel6);
btn_7.addEventListener(MouseEvent.CLICK,speel7);
btn_8.addEventListener(MouseEvent.CLICK,speel8);
btn_9.addEventListener(MouseEvent.CLICK,speel9);


var mc_video01:MovieClip = new video01();
var mc_video02:MovieClip = new video02();
var mc_video03:MovieClip = new video03();
var mc_video04:MovieClip = new video04();
var mc_video05:MovieClip = new video05();
var mc_video06:MovieClip = new video06();
var mc_video07:MovieClip = new video07();
var mc_video08:MovieClip = new video08();
var mc_video09:MovieClip = new video09();

var filmAan = false;

function speel1(evtObj:MouseEvent):void {
trace("knop 1: video 1");
    if (filmAan == false) {

    addChild(mc_video01);
    mc_video01.x=340; 
    mc_video01.y=227;
    mc_video01.width=1360;
    mc_video01.height=1060;

    filmAan = true;
}
}
function speel2(evtObj:MouseEvent):void {
trace("knop 1: video 1");
    if (filmAan == false) {

    addChild(mc_video02);
    mc_video02.x=340; 
    mc_video02.y=227;
    mc_video02.width=1360;
    mc_video02.height=1060;

    filmAan = true;
}
}
function speel3(evtObj:MouseEvent):void {
trace("knop 1: video 1");
    if (filmAan == false) {

    addChild(mc_video03);
    mc_video03.x=340; 
    mc_video03.y=227;
    mc_video03.width=1360;
    mc_video03.height=1060;

    filmAan = true;
}
}
function speel4(evtObj:MouseEvent):void {
trace("knop 1: video 1");
    if (filmAan == false) {

    addChild(mc_video04);
    mc_video04.x=340; 
    mc_video04.y=227;
    mc_video04.width=1360;
    mc_video04.height=1060;

    filmAan = true;
}
}
function speel5(evtObj:MouseEvent):void {
trace("knop 1: video 1");
    if (filmAan == false) {

    addChild(mc_video05);
    mc_video05.x=340; 
    mc_video05.y=227;
    mc_video05.width=1360;
    mc_video05.height=1060;

    filmAan = true;
}
}
function speel6(evtObj:MouseEvent):void {
trace("knop 1: video 1");
    if (filmAan == false) {

    addChild(mc_video06);
    mc_video06.x=340; 
    mc_video06.y=227;
    mc_video06.width=1360;
    mc_video06.height=1060;

    filmAan = true;
}
}
function speel7(evtObj:MouseEvent):void {
trace("knop 1: video 1");
    if (filmAan == false) {

    addChild(mc_video07);
    mc_video07.x=340; 
    mc_video07.y=227;
    mc_video07.width=1360;
    mc_video07.height=1060;

    filmAan = true;
}
}
function speel8(evtObj:MouseEvent):void {
trace("knop 1: video 1");
    if (filmAan == false) {

    addChild(mc_video08);
    mc_video08.x=340; 
    mc_video08.y=227;
    mc_video08.width=1360;
    mc_video08.height=1060;

    filmAan = true;
}
}
function speel9(evtObj:MouseEvent):void {
trace("knop 1: video 1");
    if (filmAan == false) {

    addChild(mc_video09);
    mc_video09.x=340; 
    mc_video09.y=227;
    mc_video09.width=1360;
    mc_video09.height=1060;

    filmAan = true;
}
}

主页有 9 个按钮,用于打开带有视频的影片剪辑,以及返回主页的按钮。 每个影片剪辑都有一个名为 video01、video02 等的类。(如上所示)它的主 .fla 类的标题为“main”。

主页上的按钮工作,并且都打开不同的影片剪辑(按钮在里面)。我想要做的是让 btn_terug 删除孩子。但我在第 3 行收到错误 1046。

希望这能澄清我的问题:)

【问题讨论】:

    标签: actionscript-3 class import package mouseevent


    【解决方案1】:

    唷,你在这个地方到处都是,大声笑..所以所有导入语句都在package..除了你有两次import flash.event.MouseEvent之外。它不应该存在于构造函数代码中。其次,你的事件监听器应该是这样的:

    btn_terug.addEventListener(MouseEvent.CLICK, terug);

    不是 btn_terug.addEventListener(MouseEvent.CLICK.terug);

    package
    {
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
    
        public class video01 extends MovieClip
        {
            public function video01()
            {
                trace("movieclip 1 geladen");
                btn_terug.addEventListener(MouseEvent.CLICK, terug);
            }
    
            public function terug(evt:MouseEvent):void
            {
                trace("knop ingedrukt");
            }
        }
    }
    

    看看现在的代码有多漂亮? =)

    【讨论】:

    • 哈哈我确实把那个代码弄得一团糟:],谢谢你的回复。我在第 3 行仍然有同样的错误:1046:找不到类型或不是编译时常量:btn_terug。有什么建议?谢谢帮助
    • 这是您的文档类吗?你是如何实例化这个类的?
    • 文档类是“主”AS 文件,对吗?我已将主要代码放在 .fla 的时间线上,而不是单独的 .as 文件中。生病编辑我的问题,并在那里放一些更多的细节。对不起,你到底是什么意思:'你是如何实例化这个类的?'
    猜你喜欢
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2015-08-17
    • 2011-08-12
    相关资源
    最近更新 更多