请帮我理解如何让自定义类实例访问时间线上定义的变量。AS3如何获取自定义类实例在时间轴上访问变量?
我没有使用文档类,因为这个程序将是一个具有多个阶段的记忆实验,所以使用时间轴对我最适合。 (FWIW,我也没有使用xml;只是尽量保持这个尽可能简单。)现在我已经做了一个简单的一帧fla,我正在试图做一个词汇测试。我创建了一个名为VocabQ的自定义类,该类又包含一个名为VocabButton的自定义类的4个实例。现在,单击其中一个按钮就可以追踪按钮标签。但我希望它也更新时间线上声明的String变量CurrentResponse的值。如果我只是尝试从VocabButton类中引用CurrentResponse,则会出现错误“1120:访问未定义的属性...”。
我尝试了各种方法,基于我在互联网上发现的讨论,但还没有成功,只是越来越困惑。请帮忙! (简单的解决方案将不胜感激,如果存在!)请参阅下面的代码。 谢谢,杰森〜
代码时间表:
import VocabQ;
import flash.display.*;
stop();
var CurrentResponse:String="NA";
var VocabQuestion = new VocabQ("VocabWord",["answerA","answerB","answerC","answerD"]);
addChild(VocabQuestion);
VocabQ.as代码:
package
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.text.*;
import VocabButton;
public class VocabQ extends MovieClip{
private var _VocabWordText:String;
private var _VocabWord:TextField;
private var _ResponseOptions:Array;
public function VocabQ(VocabWordText:String,ResponseOptions:Array){
_VocabWordText=VocabWordText;
_ResponseOptions=ResponseOptions;
build();
}
private function build():void{
_VocabWord = new TextField();
_VocabWord.text=_VocabWordText;
_VocabWord.x=25;
_VocabWord.y=25;
_VocabWord.textColor = 0x000000;
addChild(_VocabWord);
for (var i:int; i < _ResponseOptions.length; i++){
var _VocabButton:VocabButton = new VocabButton(_ResponseOptions[i]);
_VocabButton.x = 25 + (_VocabWord.width) + 10 + ((_VocabButton.width + 2) * i);
_VocabButton.y = 25;
addChild(_VocabButton);
}
}
}
}
VocabButton.as代码:
package
{
import flash.display.*;
import flash.text.*;
import flash.events.*;
public class VocabButton extends MovieClip{
private var _btnLabel:TextField;
public function VocabButton(labl:String){
_btnLabel = new TextField();
_btnLabel.textColor = 0x000000;
_btnLabel.text = labl;
_btnLabel.border=true;
_btnLabel.borderColor=0x000000;
_btnLabel.background=true;
_btnLabel.backgroundColor= 0xDAF4F0;
_btnLabel.mouseEnabled = false;
_btnLabel.selectable=false;
_btnLabel.width=100;
_btnLabel.height=18;
buttonMode=true;
useHandCursor=true;
addEventListener(MouseEvent.CLICK,onClick,false,0,true);
addChild(_btnLabel);
}
private function onClick(evt:MouseEvent):void{
trace(_btnLabel.text);
//CurrentResponse=_btnLabel.text; //causes error 1120: Access of undefined property...
}
}
}
欢迎来到SO,Jason。一个初学者的好问题。值得一瞥http://stackoverflow.com/faq现在你在这里。 – JcFx