вот код прелоадера который пишу в экшене
Код AS3:
var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
l.load(new URLRequest("Flaha.swf"));
function loop(e:ProgressEvent):void
{
var perc:Number = e.bytesLoaded / e.bytesTotal;
percent.text = Math.ceil(perc*100).toString();
}
function done(e:Event):void
{
removeChildAt(0);
percent = null;
this.addChild(l);
}
а вот код главного класса в подгружаемой флэшке
Код AS3:
package {
import flash.display.*;
import flash.events.Event;
import flash.events.KeyboardEvent;
public class Battle extends MovieClip {
public var box= new Box;
public var press_left = false;
public var press_right = false;
public var press_up = false;
public var press_down = false;
public var press_space = false;
public function Battle() {
addChild(box);
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down); //если убрать stage или закоментировать слушатели то ошибок не выдаёт но нажатия не работают
stage.addEventListener(KeyboardEvent.KEY_UP, key_up);
stage.addEventListener(Event.ENTER_FRAME,on_enter_frame);
}
.......
public function on_enter_frame(event:Event) {
if (is_left()) {
box.x+=5;
}
}
public function is_left() {
return press_left;
}
public function key_down(event:KeyboardEvent) {
if (event.keyCode == 37) {
press_left = true;
}
}
public function key_up(event:KeyboardEvent) {
if (event.keyCode == 37) {
press_left = false;
}
}
}
}
код сильно сокращал, поэтому если будут опечатки извиняйте.
|