Perché il mio ASB SimpleButton non viene visualizzato?
-
10-07-2019 - |
Domanda
Sono molto nuovo per il flash. Sto cercando di mostrare un semplice pulsante per la mia semplice app flash (con Adobe Flex Builder 3).
Il file di progetto principale, 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
}
}
}
Quindi il file di classe 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);
}
}
}
Quando lo eseguo il pulsante non viene visualizzato. Cosa sto sbagliando?
Soluzione
La grafica di ActionScript3 si basa sul concetto di elenco di visualizzazione. Per poter essere visti, gli elementi essenzialmente grafici devono essere aggiunti all'elenco di visualizzazione.
Il nodo principale dell'elenco di visualizzazione (in realtà è un albero) è la tua classe principale, Client2. Di conseguenza tutto ciò che si desidera visualizzare sullo schermo deve essere aggiunto come figlio di questo elemento in questo modo:
addChild(loginGui); //inside of your main class
Allo stesso modo, i tuoi pulsanti dovrebbero essere aggiunti alla tua istanza di LoginInterface
addChild(myButton); //inside of LoginInterface