访问

2011-03-31 62 views
0

我下面的教程这里访问

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

+1

这是所有第1帧?我们无法在当前图片中看到您的时间线。此外,是直接在主时间线上,还是嵌套在另一个剪辑?你可以告诉我们你的病历吗? – scriptocalypse 2011-03-31 19:12:46

+0

我无法上传,所以请参阅http://img217.imageshack.us/i/responsetxt2.jpg/ – user310291 2011-03-31 20:04:23

回答

1

你永远不会实例response_txt。

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

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

+0

我确实指定了一个实例名称,请参阅上面的图片 – user310291 2011-03-31 18:52:29

+0

hrm。这很奇怪。有些东西在某个地方停住了。你有没有试图以编程方式添加该文本字段?我知道你正在尝试获得工作,但它可能会帮助你找到问题... – Bosworth99 2011-04-01 00:16:08

+0

终于我的init从未被调用,因为我没有构造函数:) – user310291 2011-04-01 04:32:38

1

您没有response_txt的实例。

从教程:

以文本工具,绘制一个矩形 覆盖 容器内。

在 属性设置文本属性设置为“动态文本”与response_txt的 实例名称。

你这样做了吗?

+0

yes看到我上面的图片 – user310291 2011-03-31 18:52:08

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'; 
    } 
} 
+0

我更新了我的代码见上面,但它仍然输出相同的错误我做错了什么? – user310291 2011-03-31 19:10:06

+0

这应该可以工作,假设您没有在命名中输入错字,并且它在时间轴的第一帧。 – zzzzBov 2011-03-31 19:29:31

+0

是的,它是在第一帧,我复制并粘贴名称从属性到编辑器! – user310291 2011-03-31 19:58:50