我正在运行以下代码:
package {
import fl.controls.Button;
import fl.controls.Label;
import fl.controls.RadioButton;
import fl.controls.RadioButtonGroup;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextFieldAutoSize;
public class RadioButtonExample extends Sprite {
private var j:uint;
private var padding:uint = 10;
private var currHeight:uint = 0;
private var verticalSpacing:uint = 30;
private var rbg:RadioButtonGroup;
private var questionLabel:Label;
private var answerLabel:Label;
private var question:String = "What day is known internationally as Speak Like A Pirate Day?";
private var answers:Array = [ "August 12", "March 4", "September 19", "June 22" ];
public function RadioButtonExample() {
setupQuiz();
}
private function setupQuiz():void {
setupQuestionLabel();
setupRadioButtons();
setupButton();
setupAnswerLabel();
}
private function setupQuestionLabel():void {
questionLabel = new Label();
questionLabel.text = question;
questionLabel.autoSize = TextFieldAutoSize.LEFT;
questionLabel.move(padding, padding + currHeight);
currHeight += verticalSpacing;
addChild(questionLabel);
}
private function setupAnswerLabel():void {
answerLabel = new Label();
answerLabel.text = "";
answerLabel.autoSize = TextFieldAutoSize.LEFT;
answerLabel.move(padding + 120, padding + currHeight);
addChild(answerLabel);
}
private function setupRadioButtons():void {
rbg = new RadioButtonGroup("question1");
createRadioButton(answers[0], rbg);
createRadioButton(answers[1], rbg);
createRadioButton(answers[2], rbg);
createRadioButton(answers[3], rbg);
}
private function setupButton():void {
var b:Button = new Button();
b.move(padding, padding + currHeight);
b.label = "Check Answer";
b.addEventListener(MouseEvent.CLICK, checkAnswer);
addChild(b);
}
private function createRadioButton(rbLabel:String, rbg:RadioButtonGroup):void {
var rb:RadioButton = new RadioButton();
rb.group = rbg;
rb.label = rbLabel;
rb.move(padding, padding + currHeight);
addChild(rb);
currHeight += verticalSpacing;
}
private function checkAnswer(e:MouseEvent):void {
if (rbg.selection == null) {
return;
}
var resultStr:String = (rbg.selection.label == answers[2]) ? "Correct" : "Incorrect";
answerLabel.text = resultStr;
}
}
Run Code Online (Sandbox Code Playgroud)
}
这来自Adobe Livedocs.http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/ 我已经在舞台上添加了一个Radiobutton,然后将其删除,以便它在库中.
但是我收到以下错误
TypeError:错误#2007:参数child必须为非null.在flash.display :: DisplayObjectContainer/addChildAt()at fl.controls :: BaseButton/fl.controls:BaseButton :: drawBackground()at fl.controls :: LabelButton/fl.controls:LabelButton :: draw()at fl. controls :: Button/fl.controls:在fl.core上的Button :: draw():: UIComponent/:: callLaterDispatcher()
任何人都可以告诉我发生了什么以及如何删除此错误.
这里的问题是你没有在库中包含一个Button组件.
将一个Button从组件面板(除了RadioButton组件)拖到您的库中(或将其拖到舞台上并将其删除).运行时错误将消失,您将在问题下方找到一个正常工作的"检查答案"按钮.
| 归档时间: |
|
| 查看次数: |
7735 次 |
| 最近记录: |