Показать сообщение отдельно
Старый 14.11.2011, 01:02
Vektor вне форума Посмотреть профиль Отправить личное сообщение для Vektor Найти все сообщения от Vektor
  № 77  
Ответить с цитированием
Vektor
 
Аватар для Vektor

Регистрация: May 2008
Адрес: Новокузнецк
Сообщений: 219
Записей в блоге: 1
Тестируйте, 4раза onButtonCreate(_mcButton0,100,100);
1раз onButtonDelete(_mcButton0);
По вашим словам дожно быть 4шт( stage.addEventListener(MouseEvent.MOUSE_UP, onMouseEvent)
Код AS3:
package {
	import flash.display.MovieClip;
	import flash.display.Stage;
	import flash.events.MouseEvent;
	public class Cbut extends MovieClip {
		private var _mcButton0:mcButton=new mcButton  ;
		private var _mcButton1:mcButton1=new mcButton1  ;
		private var _mcButton2:mcButton=new mcButton  ;
		private var _mcButton3:mcButton1=new mcButton1  ;
		private var _bDown:Boolean=false;
		private var _oDownButon:Object=new Object  ;
		//private var _iCounter:int=0;
		public function Cbut() {
			// constructor code
			onButtonCreate(_mcButton0,100,100);
			onButtonCreate(_mcButton1,200,100);
			onButtonCreate(_mcButton2,200,200);
			onButtonCreate(_mcButton3,100,200);
			onButtonDelete(_mcButton0);
 
		}
		private function onButtonCreate(But,x:int,y:int):void {
			//trace(But as MovieClip)
			addChild(But);
			But.stop();
			But.x=x;
			But.y=y;
			this.addEventListener(MouseEvent.MOUSE_OVER, onMouseEvent);
			this.addEventListener(MouseEvent.MOUSE_OUT, onMouseEvent);
			this.addEventListener(MouseEvent.MOUSE_DOWN, onMouseEvent);
			stage.addEventListener(MouseEvent.MOUSE_UP, onMouseEvent);
		}
		private function onButtonDelete(But:MovieClip):void {
			But.removeEventListener(MouseEvent.MOUSE_OVER, onMouseEvent);
			But.removeEventListener(MouseEvent.MOUSE_OUT, onMouseEvent);
			But.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseEvent);
			stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseEvent);
			removeChild(But);
			But=null;
		}
		private function onMouseEvent(event:MouseEvent):void {
			//_iCounter++;
			switch (event.type) {
				case MouseEvent.MOUSE_OVER :
					if (_bDown&&_oDownButon==event.target) {
						_oDownButon.gotoAndStop(3);
					} else {
						event.target.gotoAndStop(2);
					}
					break;
				case MouseEvent.MOUSE_OUT :
					event.target.gotoAndStop(1);
					break;
				case MouseEvent.MOUSE_DOWN :
					//stage.addEventListener(MouseEvent.MOUSE_UP, onMouseEvent);
					_oDownButon=event.target;
					event.target.gotoAndStop(3);
					_bDown=true;
					break;
				case MouseEvent.MOUSE_UP :
					if (!(event.target is Stage)) {
						event.target.gotoAndStop(2);
					}
					trace("Не работает")
					//stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseEvent);
					_bDown=false;
					break;
			}
		}
	}
 
}
__________________
Книги и желание лучшие учителя.