Пользовательская кнопка с изображением - PullRequest
2 голосов
/ 09 февраля 2010

Привет, я пытаюсь создать кнопку в ActionScript 3, которая будет сделана из специального изображения (car.jpg с моего жесткого диска). Возможно ли это сделать с помощью класса SimpleButton (я имею в виду, есть ли способ загрузить изображение и прикрепить его к кнопке?) Или есть другой способ? Если я хочу, чтобы анимация была также в кнопке, когда, скажем, я наведу указатель мыши на кнопку, что мне делать?

ps: я хотел бы использовать только ActionScript 3 (я имею в виду, что весь проект выполнен в виде файла .as, который связан с классом Document).

1 Ответ

3 голосов
/ 09 февраля 2010

Хотя Джордж Профенца уже указал на лучшее решение в комментарии, если вам любопытно, как можно реализовать класс SimpleButton, вы можете взглянуть на справочные примеры документа as3:

Adobe liveocs - Пример SimpleButton

Я также написал простой пример, который превращает «простую кнопку» только в «сложную кнопку», но использует класс SimpleButton, поэтому вы можете посмотреть, как можно расширить класс, и присвоить каждому состоянию его собственная графика. Вот код:

// this goes in your app
var button:MySimpleButton = new MySimpleButton();
addChild(button);

MySimpleButton.as

package  
{
    import flash.display.DisplayObject;
    import flash.display.SimpleButton;
    import flash.display.Sprite;

    public class MySimpleButton extends SimpleButton 
    {
        private var upAlpha : Number = 1;
        private var overAlpha : Number = 0.5;

        public function MySimpleButton(upState : DisplayObject = null, overState : DisplayObject = null, downState : DisplayObject = null, hitTestState : DisplayObject = null)
        {
            upState = new ButtonImgDisplayState( upAlpha);
            overState = new ButtonImgDisplayState( overAlpha);
            downState = new ButtonImgDisplayState( upAlpha);
            hitTestState = new ButtonImgDisplayState( upAlpha);

            super(upState, overState, downState, hitTestState);
        }
    }
}

ButtonImgDisplayState.as

package  
{
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.net.URLRequest;

    public class ButtonImgDisplayState extends Sprite 
    {

        public function ButtonImgDisplayState(_alpha:Number)
        {
            var my_loader : Loader = new Loader();
            my_loader.load(new URLRequest("car.jpg"));
            addChild(my_loader);

            this.alpha = _alpha;
        }
    }
}

Смысл SimpleButton в том, чтобы избавить вас от установки слушателей, но вы обязаны обходить состояния, которые разделены объектами DisplayObject, что делает вас более жёстким при работе с переходами между состояниями.

Надеюсь, вы найдете это полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...