понедельник, 24 сентября 2012 г.

Button

Привет.

Button - один из типов символа.


У Button есть своя, удобная для настойки кнопки, временная шкала:


Здесь видно 4 кадра:
  • Up - обычное состояние кнопки
  • Over - мышь наведена на кнопку
  • Down - кнопка нажата
  • Hit - область наведения/нажатия на кнопку
В отличие от Movieclip, курсор автоматически изменяется на руку при наведении на кнопку.

К Button, как и к Movieclip, можно применять фильтры.

Ясное дело, Button нужно использовать когда его использовать удобнее, а Movieclip, когда удобнее использовать Movieclip. ( Спасибо, Кеп! )

То-есть почти во всех случаях, когда нужно создать кнопку, используем тип Button, а когда, например, нужно сделать кнопку-переключатель, которая по очереди меняет 2 картинки при нажатии, используем Movieclip.

Стоп-стоп-стоп. Мы же можем просто создать мувиклип в кнопке, назвать этот мувиклип как-нибудь, назвать кнопку и все - мы можем обращаться к мувиклипу в кнопке и менять его кадры!

А ВОТ И НЕТ! :)

Будет ошибка типа :
Scene 1, Layer 'Layer 1', Frame 1, Line 8 1119: Access of possibly undefined property somename through a reference with static type flash.display:SimpleButton.

А все почему?

Дело в том, что Button не унаследован от Movieclip. Сиволы типа Button - это экземпляры класса SimpleButton, который унаследован от InteractiveObject.

Дочерние элементы появились ( мувиклип внутри кнопки - это дочерний элемент ) только  в классе DisplayObjectContainer.

Смотрите.

Наследование SimpleButton:
SimpleButton → InteractiveObject    DisplayObject    EventDispatcher    Object

Наследование MovieClip:
MovieClip  Sprite  DisplayObjectContainer  InteractiveObject  DisplayObject  EventDispatcher  Object

То-есть, если бы SimpleButton был унаследован от DisplayObjectContainer, то все бы получилось, а так придется использовать мувиклип.

Комментариев нет:

Отправить комментарий