Делаю игру. Начал делать на АС2 но начали появляться подтормаживания и просадки фпс. Пока не критично, но ещё много впереди и в конце концов, это стало бы узким местом. Решил перебросить всё на АС3 пока не поздно, т.к. он вроде пошустрее, НО, получил тормозов ещё больше!
Что имеем:
вид сверху, в центре герой, бекгроунд - 2 штука растра 2500х2500 + ещё там фигни всякой типа мувика для хит теста и т.д.
Герой на месте, двигаю только бекгроунд со всеми составляющими.
В АС3 версии даже без ХитТеста, только скролл бека - фпс падает до 20-25. АС2 30 держал стабильно и с ХитТестом и стрельбой.
Код писал на фрейме мувика лежащего на главной сцене. Все обьекты внутри этого мувика. Вот код:

Код AS3:
stop();
//stage.frameRate = 120;
//var plsp = 25;
var speed:Number = 3.5;
var xspeed:Number = 0;
var yspeed:Number = 0;
//var lev = 0;
MovieClip(root).center.visible = false;
sf_holder.visible = false;
hit.visible = false;
Lshadow.vbullet.visible = false;
var canLight:Boolean = true;
var kLEFT:Boolean = false;
var kRIGHT:Boolean = false;
var kUP:Boolean = false;
var kDOWN:Boolean = false;
var radians:Number;
var grad:Number;
function ch_l() {
canLight = true;
}
var signal = true;
getFPS = function() {
if(signal == true) {
time = getTimer();
} else {
rate = int(1000 / (getTimer() - time));
}
signal = !signal;
//return rate;
MovieClip(root).fpst.text = "FPS: " + rate;
}
function enterFrameHandler( event : Event ) : void {
getFPS();
radians = Math.atan2 (hero.x-mouseX, hero.y-mouseY);
grad = -radians * 180 / Math.PI;
hero.rotation = grad;
if(kLEFT){ xspeed -= speed;}
if(kRIGHT){ xspeed += speed;}
if(kUP){ yspeed -= speed;}
if(kDOWN){ yspeed += speed;}
Lshadow.x += xspeed*-1;
Lshadow.y += yspeed*-1;
grnd.x += xspeed*-1;
grnd.y += yspeed*-1;
trees.x += xspeed*-1;
trees.y += yspeed*-1;
hit.x += xspeed*-1;
hit.y += yspeed*-1;
Lshadow.heroLight.rotation = hero.rotation;
Lshadow.heroLight.x += xspeed;
Lshadow.heroLight.y += yspeed;
Lshadow.shL.x += xspeed;
Lshadow.shL.y += yspeed;
xspeed = 0;
yspeed = 0;
}
function keyPressed(event:KeyboardEvent):void {
if(event.keyCode == Keyboard.LEFT){
kLEFT = true;
}
if(event.keyCode == Keyboard.RIGHT){
kRIGHT = true;
}
if(event.keyCode == Keyboard.UP){
kUP = true;
}
if(event.keyCode == Keyboard.DOWN){
kDOWN = true;
}
}
function keyUP(event:KeyboardEvent):void {
if(event.keyCode == Keyboard.LEFT){
kLEFT = false;
}
if(event.keyCode == Keyboard.RIGHT){
kRIGHT = false;
}
if(event.keyCode == Keyboard.UP){
kUP = false;
}
if(event.keyCode == Keyboard.DOWN){
kDOWN = false;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUP);
addEventListener( Event.ENTER_FRAME, enterFrameHandler );
С АС3 незнаком. Это первый опыт. Никак не пойму где туплю, откуда такие тормоза ?