Actionscript 3 标签没有出现
我正在使用bare ActionScript 3.0从基本的Flash UI组件构建一个简单的菜单,第一个Actionscript 3 标签没有出现,actionscript-3,flash,actionscript,Actionscript 3,Flash,Actionscript,我正在使用bare ActionScript 3.0从基本的Flash UI组件构建一个简单的菜单,第一个标签控件在电影测试期间不会显示(Ctrl+Enter)。为什么呢 我在图书馆或舞台上没有任何符号。我的文档链接到main.as 当启动.swf时,应该执行的操作是main()获取生成main菜单的指令,该菜单将在电影屏幕的中上部显示唯一的标签 main.as package { import flash.display.*; public class main exten
标签
控件在电影测试期间不会显示(Ctrl+Enter)
。为什么呢
我在图书馆或舞台上没有任何符号。我的文档链接到main.as
当启动.swf时,应该执行的操作是main()
获取生成main菜单的指令,该菜单将在电影屏幕的中上部显示唯一的标签
main.as
package {
import flash.display.*;
public class main extends MovieClip{
public function main(){
changeState(null, "mainMenu");
}
public function changeState(currentState, nextState){
if(currentState != null){
removeChild(currentState);
}
if(nextState == "mainMenu"){
var main_menu:mainMenu = new mainMenu(changeState);
addChild(main_menu);
}// else if(nextState == "deckManager"){
// var deck_manager:deckManager = new deckManager(changeState);
// addChild(deck_manager);
// }
}
}
}
package {
import flash.display.*;
import flash.events.MouseEvent;
import fl.controls.Label;
import fl.controls.RadioButton;
import fl.controls.ComboBox;
import fl.controls.Button;
public class mainMenu extends Sprite{
const difficultyRadioGroupName:String = "difficultyGroup"; // group name for easy, normal and hard difficulty radio buttons
var difficultyLabel:Label; // "Difficulty" label
var easyDifficultyRadio:RadioButton; // "Easy" difficulty radio button
var normalDifficultyRadio:RadioButton; // "Normal" difficulty radio button
var hardDifficultyRadio:RadioButton; // "Hard" difficulty radio button
var yourDeckLabel:Label; // "Your deck" label
var yourDeckCombo:ComboBox; // combobox to select your deck(1)
var editSelectedDeckButton:Button; // button to edit currently selected deck
var startTheGameButton:Button; // button to start the game
var theCallbackFunction:Function; // callback function to change between mainMenu and deckManager
public function mainMenu(callback){
// create and position the difficulty label
difficultyLabel = new Label();
difficultyLabel.text = "Difficulty";
difficultyLabel.x = width / 2;
difficultyLabel.y = height / 4;
addChild(difficultyLabel);
theCallbackFunction = callback;
}
//public function backButtonClicked(evt:MouseEvent){
// theCallbackFunction(this, "back");
// return;
// }
}
}
主菜单。如所示
package {
import flash.display.*;
public class main extends MovieClip{
public function main(){
changeState(null, "mainMenu");
}
public function changeState(currentState, nextState){
if(currentState != null){
removeChild(currentState);
}
if(nextState == "mainMenu"){
var main_menu:mainMenu = new mainMenu(changeState);
addChild(main_menu);
}// else if(nextState == "deckManager"){
// var deck_manager:deckManager = new deckManager(changeState);
// addChild(deck_manager);
// }
}
}
}
package {
import flash.display.*;
import flash.events.MouseEvent;
import fl.controls.Label;
import fl.controls.RadioButton;
import fl.controls.ComboBox;
import fl.controls.Button;
public class mainMenu extends Sprite{
const difficultyRadioGroupName:String = "difficultyGroup"; // group name for easy, normal and hard difficulty radio buttons
var difficultyLabel:Label; // "Difficulty" label
var easyDifficultyRadio:RadioButton; // "Easy" difficulty radio button
var normalDifficultyRadio:RadioButton; // "Normal" difficulty radio button
var hardDifficultyRadio:RadioButton; // "Hard" difficulty radio button
var yourDeckLabel:Label; // "Your deck" label
var yourDeckCombo:ComboBox; // combobox to select your deck(1)
var editSelectedDeckButton:Button; // button to edit currently selected deck
var startTheGameButton:Button; // button to start the game
var theCallbackFunction:Function; // callback function to change between mainMenu and deckManager
public function mainMenu(callback){
// create and position the difficulty label
difficultyLabel = new Label();
difficultyLabel.text = "Difficulty";
difficultyLabel.x = width / 2;
difficultyLabel.y = height / 4;
addChild(difficultyLabel);
theCallbackFunction = callback;
}
//public function backButtonClicked(evt:MouseEvent){
// theCallbackFunction(this, "back");
// return;
// }
}
}
从表面上看,这似乎还可以
但是,指定给标签的X/Y坐标可能不是您所期望的。您可以根据主菜单
精灵的宽度/高度设置它们。但是Sprite
还没有子元素(子元素添加到下一行),因此宽度/高度仍然为0
这可能不是问题所在。为了进一步解决这个问题,我会设置一些断点并使用调试器,或者添加一组trace
语句,以确保您的代码使用正确的值执行。我相信“fl.controls”包中的所有内容都需要在库中显示适当的资源。如果您只是从fl.controls导入内容,那么除非您将该元素添加到库中,或者摄取包含适当库资产的swc/swf,否则就不会获得控件的UI方面
所以我猜,如果在flashide中,如果您将适当的UI元素从components选项卡拖到库中,它们就会开始显示。它们不必在舞台上或其他任何地方,只要在库中就可以使用您的代码编译UI元素。有趣!flashide(flashcs5/6或其他什么)与我的老朋友flashbuilder完全不同:)