Показать сообщение отдельно
Старый 22.01.2010, 21:38
Captain QUAZAR вне форума Посмотреть профиль Отправить личное сообщение для Captain QUAZAR Найти все сообщения от Captain QUAZAR
  № 5  
Ответить с цитированием
Captain QUAZAR

Регистрация: Mar 2009
Сообщений: 31
Ребята, вот я попробовал сделать, как я это понимаю, то что вы мне посоветовали.
Создаю главный класс Moover, в нем создаю экземпляры двух моих мувиков – классы Red и Black.
Код AS3:
package{
	import flash.display.*;
	import flash.events.*;
 
	public class Moover extends Sprite{
 
		public function Moover(){
			var mc1:Black = new Black();
			var mc2:Red = new Red();
			mc2.x = 340;
			mc2.y = 165;
			mc1.x = 480;
			mc1.y = 165;
 
			this.addChild(mc1);
			this.addChild(mc2);
			trace(mc1.parent);
			addEventListener(Event.ENTER_FRAME, frameList);
			function frameList(e:Event):void{
				mc1.x-=10;
				mc2.x-=10;
				if(mc1.x<-73){
					mc1.x = 600;
				}
				if(mc2.x<-73){
					mc2.x = 600;
				}
			}
		}
	}
}
Вот код одного из мувиков, который вроде бы должен удалять ENTER_FRAME у своего родителя – объекта класса Moover.
Код AS3:
package{
	import flash.display.*;
	import flash.events.*;
 
	public class Red extends Sprite{
 
		public function Red(){
			this.addEventListener(MouseEvent.MOUSE_OVER, overList);
			function overList(e:MouseEvent):void{
				super.parent.removeEventListener(Event.ENTER_FRAME, super.parent.frameList);
			}
		}
	}
}
Но получается такая ошибка:
Цитата:
TypeError: Error #1034: Type Coercion failed: cannot convert global@41d2041 to Function.
at MethodInfo-1()
Я, правда, нашел уже другое решение - удаляю ENTER_FRAME прямо в основ ном классе, т.к. mc1 и mc2 являются его детьми, и по наведению курсора на них фрейм листенер удаляется.