Как отключить SimpleButton, включая изменение его внешнего вида

Предпосылка:

У меня есть 10 кнопок, каждая с изображением в нормальном состоянии (buttonX.png) и состоянием при наведении курсора (buttonXglow.png). Кнопки создаются вручную во flash, но на них ссылается мой основной класс as3. Мне нужно добавить разные состояния к кнопкам.

Я хочу сделать следующее:

  1. отметьте одну из кнопок как выбранную, например. показывать его с (buttonXglow.png) все время.
  2. иметь возможность отключать кнопки (я использую mouseEnabled = false; на данный момент это отключает его поведение, но я также хочу изменить внешний вид на изображение (buttonXout.png)).

  3. кажется довольно сложным в AS3, я попытался встроить изображения (buttonXglow.png) со следующими, которые я поместил в качестве переменных-членов в свой основной класс, но это не работает для меня.

    [Embed(source='button1out.png')]
    public static var Button1Out:Class;
    

Также я не уверен, как на самом деле заменить внешний вид кнопок растровым изображением, если я заставлю его работать. Я думал, что я должен заменить upState кнопки.

Заранее спасибо!


person Johan Carlsson    schedule 19.11.2009    source источник


Ответы (2)


  1. Кажется довольно сложным в AS3, я попытался встроить изображения (buttonXglow.png) со следующими, которые я поместил в качестве переменных-членов в свой основной класс, но это не работает для меня.

    [Вставить(источник='button1out.png')] общедоступная статическая переменная Button1Out:Class;

(это не работает во флеш cs3)

Похоже, ответ здесь, что приведенный выше синтаксис [Embed(...)] принадлежит FlashDeveloper, для Flash CS3, который я использую, параметр заключается в том, чтобы вручную импортировать изображения в библиотеку и настроить так, чтобы класс был создан для каждое изображение (немного времени, но это сработало).

Изменить: обратите внимание, что у меня были проблемы с «Класс 2022% 1 должен наследоваться от DisplayObject, чтобы ссылаться на символ». Похоже, это ошибка Flash CS3, из-за которой Linkage по какой-то причине перестал работать. Я решаю это, удаляя изображения из библиотеки и снова импортируя их.

Используйте параметр «Связывание» в окне «Свойства растрового изображения», чтобы задать параметр «Экспорт для ActionScript». Задайте имя класса, базовый класс будет установлен на flash.display.BitmapData.

В вашем коде вы можете использовать класс как обычно, например:

var image: Bitmapdata = новый Button1outClass (23, 23); // Обратите внимание, что мне пришлось установить ширину и высоту в конструкторе.

Я использовал следующий код для создания спрайта с растровым изображением:

button1Out=new Sprite();
button1Out.addChild(new Bitmap(new Button1outClass(23, 23)));   

Что подводит нас

  1. Отметьте одну из кнопок как выбранную, например. показывать его с (buttonXglow.png) все время.
  2. Иметь возможность отключать кнопки (я использую mouseEnabled = false; в данный момент это отключает его поведение, но я также хочу изменить внешний вид на изображение (buttonXout.png)).
  1. легко решается указанием

    button.upState=button.overState;

(проблема в том, что мне нужно сохранить upState, чтобы я мог его восстановить)

  1. так же просто, как:

    button.upState=button1Out:

(также здесь проблема с восстановлением, но, поскольку я собираюсь только отключить кнопки, никогда не включаю их снова, я могу пойти сюда)

person Community    schedule 19.11.2009

ну, я бы сказал, что ActionScript - единственный выход... если вам повезет, вы найдете компонент, но я думаю, вам придется сделать это самостоятельно...

в любом случае... чтобы появилось растровое изображение, вам нужно сделать что-то вроде myButton.upState = new Button1Out();... надеюсь, что это ответит на ваш вопрос... :)

person back2dos    schedule 19.11.2009