在flash中访问未定义的属性

时间:2011-03-31 17:36:01

标签: flash actionscript

我正在按照这里的教程

http://www.graphicsxone.com/checkbox-and-as3-in-flash-cs4.html

这是我在main.as中的代码

package {

        import flash.display.Sprite;
        // import the CheckBox class
        import fl.controls.CheckBox;    
        mport flash.events.*;

    public class main extends Sprite {      

        addEventListener( Event.ADDED_TO_STAGE, init ); 

        // create the CheckBoxes
        var NS = new CheckBox();
        var SS = new CheckBox();
        var ES = new CheckBox();
        var WS = new CheckBox();

    }

  private function init( e:Event ):void
  {
    removeEventListener( Event.ADDED_TO_STAGE, init );
    response_txt.text = 'foo bar baz etc';
  } 

}

当我测试时说

访问未定义的属性response_txt。

新图片http://img217.imageshack.us/i/responsetxt2.jpg/

enter image description here

3 个答案:

答案 0 :(得分:1)

你从未实例化过response_txt。

var response_txt:TextField = new TextField();
response_txt.text = "blah blah blah";

那或者您没有在Flash IDE中正确分配实例名称。我没有多看这个教程但是 - 如果你的符号在舞台上,只需点击它并确保给它正确的实例名称......

答案 1 :(得分:1)

您没有response_txt的实例。

来自教程:

  

使用文本工具绘制一个   矩形覆盖内部   容器

     

在。中设置Text属性   带有“动态文本”的属性   实例名称 response_txt

你做到了吗?

答案 2 :(得分:1)

这是一个简单的问题,舞台上存在response_txt,但在调用代码时,舞台尚未实例化。

简单的解决方案是在类构造函数中添加一个事件处理程序:

import flash.events.Event;

public class main extends Sprite
{
  public function main():void
  {
    addEventListener( Event.ADDED_TO_STAGE, init );
  }

  private function init( e:Event ):void
  {
    removeEventListener( Event.ADDED_TO_STAGE, init );
    response_txt.text = 'foo bar baz etc';
  }
}