내 AS3 SimpleButton이 표시되지 않는 이유는 무엇입니까?
-
10-07-2019 - |
문제
나는 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.s 클래스 파일 :
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);
}
}
}
내가 그것을 실행하면 버튼이 표시되지 않습니다. 내가 뭘 잘못하고 있죠?
해결책
ActionScript3 그래픽은 디스플레이 목록 개념을 기반으로합니다. 본질적으로 그래픽 요소를 표시하려면 디스플레이 목록에 추가해야합니다.
디스플레이 목록의 루트 노드 (실제로 트리입니다)는 메인 클래스 인 Client2입니다. 결과적으로 화면에 표시하려는 모든 것은이 요소의 자식으로 추가되어야합니다.
addChild(loginGui); //inside of your main class
마찬가지로 LoginInterface 인스턴스에 버튼을 추가해야합니다.
addChild(myButton); //inside of LoginInterface
제휴하지 않습니다 StackOverflow