Flash-ficha #1

Обнаружил очередную Фичу:
скажем, у Вас на сцене есть myMC:MovieClip , внутри которого Button.
Помещаем на первый frame, где создается MovieClip, ActionScript (скажем, поменять текст в Button)
Так вот, если у Вас в Button есть MovieClip (допустим, фон вы сделали), то вышеупомянутый ActionScript не увидит myMC.

Для наглядности:

Но на самом деле все еще круче — событие CLICK перестает работать.

Вывод: лучше использовать MovieClip и вручную сделать всякие OVER и CLICK.

Ссылка по теме: http://forums.creativecow.net/thread/190/863982

Мое решение — создал свой класс MovieClipButton:

package Controls
{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;

	/**
	* @author Dmitriy
	*/

	public class MovieClipButton extends MovieClip  {

		public function MovieClipButton()     {
			stop();

			//Делаем курсор пальчиком
			mouseChildren = false;
			buttonMode = true;
			useHandCursor = true;

			addEventListener(MouseEvent.MOUSE_OUT, out);
			addEventListener(MouseEvent.MOUSE_OVER, over);
			addEventListener(MouseEvent.CLICK,click);

		}

		private function click(e:MouseEvent):void {
			this.gotoAndStop(3);
		}

		private function over(e:MouseEvent):void {
			this.gotoAndStop(2);
		}

		private function out(e:MouseEvent):void {
			this.gotoAndStop(1);
		}

		public function disable() {

			buttonMode = false;
			useHandCursor = false;

			removeEventListener(MouseEvent.MOUSE_OUT, out);
			removeEventListener(MouseEvent.MOUSE_OVER, over);
			removeEventListener(MouseEvent.CLICK, click);

			gotoAndStop(4);
		}
	}
}

2010.05.18