Почему мой AS3 SimpleButton не отображается? - PullRequest
0 голосов
/ 24 июня 2009

Я очень новичок во флэш. Я пытаюсь показать простую кнопку для моего простого приложения 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 Ответ

1 голос
/ 24 июня 2009

Графика ActionScript3 основана на концепции списка отображения. По существу графические элементы должны быть добавлены в список отображения, чтобы их можно было увидеть.

Корневой узел списка отображения (на самом деле это дерево) - это ваш основной класс, Client2. Следовательно, все, что вы хотите отобразить на экране, должно быть добавлено как дочерний элемент этого элемента, например:

addChild(loginGui);  //inside of your main class

Аналогично, ваши кнопки должны быть добавлены к вашему экземпляру LoginInterface

addChild(myButton);  //inside of LoginInterface
...