Почему мой AS3 SimpleButton не отображается?
Я очень новичок во флэш. Я пытаюсь показать простую кнопку для моего простого приложения Flash (с Adobe Flex Builder 3).
Основной файл проекта, Client2.as:
package
{
import flash.display.Sprite;
[SWF(width="600", height="600", frameRate="31", backgroundColor="#00FFFF")] //set project properties
public class Client2 extends Sprite
{
public function Client2() {
trace("Client launched.");
var loginGui:LoginInterface = new LoginInterface(); //load the login interface object
loginGui.init(); //initialize the login interface
}
}
}
Затем файл класса LoginInterface.as:
package
{
import flash.display.Sprite;
import flash.display.SimpleButton;
public class LoginInterface extends Sprite
{
public function LoginInterface()
{
trace("LoginInterface object loaded.");
}
public function init():void
{
trace("LoginInterface init method was called.");
var myButton:SimpleButton = new SimpleButton();
//create the look of the states
var down:Sprite = new Sprite();
down.graphics.lineStyle(1, 0x000000);
down.graphics.beginFill(0xFFCC00);
down.graphics.drawRect(10, 10, 100, 30);
var up:Sprite = new Sprite();
up.graphics.lineStyle(1, 0x000000);
up.graphics.beginFill(0x0099FF);
up.graphics.drawRect(10, 10, 100, 30);
var over:Sprite = new Sprite();
over.graphics.lineStyle(1, 0x000000);
over.graphics.beginFill(0x9966FF);
over.graphics.drawRect(10, 10, 100, 30);
// assign the sprites
myButton.upState = up;
myButton.overState = over;
myButton.downState = down;
myButton.hitTestState = up;
addChild(myButton);
}
}
}
Когда я запускаю его, кнопка не отображается. Что я делаю неправильно?
1 ответ
Решение
Графика ActionScript3 основана на концепции отображения списка. По существу, графические элементы должны быть добавлены в список отображения, чтобы их можно было увидеть.
Корневой узел списка отображения (на самом деле это дерево) - это ваш основной класс, Client2. Следовательно, все, что вы хотите отобразить на экране, должно быть добавлено как дочерний элемент этого элемента следующим образом:
addChild(loginGui); //inside of your main class
Точно так же, ваши кнопки должны быть добавлены в ваш экземпляр LoginInterface
addChild(myButton); //inside of LoginInterface