| Captain QUAZAR |
22.01.2010 21:38 |
Ребята, вот я попробовал сделать, как я это понимаю, то что вы мне посоветовали.
Создаю главный класс 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 являются его детьми, и по наведению курсора на них фрейм листенер удаляется.:)
|