代码中不可修复的部分中的“变量*未定义”?

时间:2010-12-08 01:11:27

标签: flash actionscript-3

我对Flash很新。我有一个简单的按钮; Instance Nameinit。从舞台外部访问我的.as脚本(MainTimeline):

./Project/MyFlash.fla

./Project/MyFlash_fla/MainTimeline.as

我通过将.as属性stage设置为Class来链接到MyFlash_fla.MainTimeline。按钮的init标签在属性中设置为“ENTER”。

但是,我遇到此错误:ReferenceError: Error #1065: Variable init is not defined. at MyFlash_fla::MainTimeline/__setProp_init_Scene1_Layer1_0() at MyFlash_fla::MainTimeline()。我从未见过,也找不到,__setProp_init_Scene1_Layer1_0() ..

这是我目前的代码:

    function MainTimeline(){
        this.init.addEventListener(MouseEvent.MOUSE_UP, begin);
    }
    function begin(event:Event){
        addFrameScript(0, frame1);
    }

功能简单;在MOUSE_UP时,执行begin。一切似乎工作正常,除了提到的错误似乎导致加载我在属性中设置的预设的一些问题。标签,而不是我设置的ENTER,更改为Label,就像我没有设置它一样。我认为它与该错误有关,但我不知道如何访问该区域或如何解决这个问题。似乎目前看似合理的解决方法是在代码中设置标签,我不想这样做,因为我计划包括更多按钮,复选框等等,这将成为一个麻烦。任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

这意味着你的“init”实例没有被实例化,__ setProp_init_Scene1_Layer1_0()是幕后代码,不用担心这个。

您可能必须声明init变量

     //assuming your button is a MovieClip
     private var init:MovieClip;

     function MainTimeline()
     {
         init.addEventListener(MouseEvent.MOUSE_UP, begin);
     }

或者,不是直接将它添加到舞台,而是使用属性面板中的“Export for Actionscript”将其链接到自己的类。在代码端添加它。我通常更喜欢这种方法,因为它可以让您更好地控制显示对象。当然,因为它没有添加到舞台上,所以你不需要实例名称!

     private var button:MovieClip = new init();

     function MainTimeline()
     {
         button.addEventListener(MouseEvent.MOUSE_UP, begin);
     }

在旁注中,“init”可能不是按钮的最佳名称,因为它经常在类中用作方法名称...

答案 1 :(得分:0)

对于其他读者,上述错误可能意味着您需要转到

  • 文件/发布设置/ AS3.0设置(看起来像一个扳手在上面 右)

然后设置“自动声明舞台实例”复选框以进行选中。此外,取消选中“严格模式”,以防它被检查并且文件继续产生错误。