Здравствуйте, подскажите пожалуйста почему флешка тормозит? Особенно это заметно после нескольких циклов. Пыталась разгрузить её путём остановки анимации за пределами видимой зоны, но как-то не очень помогло.
Флешка вложена.
Если кто-нибудь захочет могу скинуть исходник 7 мб.
Вот код:

Код AS3:
import flash.geom.Rectangle;
import flash.events.MouseEvent;
import flash.sensors.Accelerometer;
import com.greensock.*;
import com.greensock.easing.*;
import flash.events.Event;
import flash.events.MouseEvent;
var bounds:Object = {left:-2926, right:1263};
var currentX:Number = qw_cont.x;
var lastX:Number = qw_cont.x;
var vx:Number = 0;
var isDragging:Boolean = false;
var offset:Number;
qw_cont.buttonMode = true;
var timeline:TimelineLite;
addEventListener(Event.ENTER_FRAME, loop);
qw_cont.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
addEventListener(MouseEvent.MOUSE_UP, onUp);
function loop (e:Event):void
{
if (isDragging == true)
{
lastX = currentX;
currentX = mouseX;
vx = currentX - lastX;
}
}
function onDown (e:MouseEvent):void
{
isDragging = true;
offset = qw_cont.mouseX;
addEventListener(MouseEvent.MOUSE_MOVE, onMove);
}
function onMove(e:MouseEvent):void
{
qw_cont.x = mouseX - offset;
if (qw_cont.x <= bounds.left)
qw_cont.x = bounds.left;
else if (qw_cont.x >= bounds.right)
qw_cont.x = bounds.right;
e.updateAfterEvent();
}
function onUp(e:MouseEvent):void
{
isDragging = false;
removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
e.updateAfterEvent();
}
//Подгонка ленты под границы кадра
addEventListener (Event.ENTER_FRAME,onMoseMove);
function onMoseMove (e:Event):void
{
var position:Number = qw_cont.x
if(position <= 0 && position >-842){
var myTween3:TweenLite = new TweenLite(qw_cont, 0.7, {x:-421});
}else if(position <= 842 && position >0){
var myTween4:TweenLite = new TweenLite(qw_cont, 0.7, {x:421});
}else if(position <= 1263 && position >842){
var myTween5:TweenLite = new TweenLite(qw_cont, 0.7, {x:1263});
}else if(position <= -842 && position >-1684){
var myTween6:TweenLite = new TweenLite(qw_cont, 0.7, {x:-1263});
}else if(position <= -1684 && position >-2526){
var myTween7:TweenLite = new TweenLite(qw_cont, 0.7, {x:-2105});
}else if(position <= -2526 && position >-2926){
var myTween8:TweenLite = new TweenLite(qw_cont, 0.7, {x:-2926});
}

Код AS3:
// Остановка/запуск анимации в конкретном кадре
addEventListener(Event.ENTER_FRAME, loop2);
function loop2 (e:Event):void
{
if (isDragging == false)
{
// 1 кадр
if (position <= 1263 && position >842) {
var myObject1:player = new player();
myObject1.playAll(qw_cont.qw_mc.odin);
TweenLite.to(qw_cont.vremya, 1, {alpha:0.69});
}else{
var myObject:stopper = new stopper();
myObject.stopAll(qw_cont.qw_mc.odin);
TweenLite.to(qw_cont.vremya, 1, {alpha:0});
}
if (qw_cont.vremya.alpha == 0) {
qw_cont.vremya.gotoAndStop(0);
}
// 2 кадр
if (position <= 842 && position >0) {
var myObject3:player = new player();
myObject3.playAll(qw_cont.qw_mc.dva);
}else{
var myObject4:stopper = new stopper();
myObject4.stopAll(qw_cont.qw_mc.dva);
}
// 3 кадр
if (position <= 0 && position >-842) {
var myObject6:player = new player();
myObject6.playAll(qw_cont.qw_mc.tri);
}else{
var myObject5:stopper = new stopper();
myObject5.stopAll(qw_cont.qw_mc.tri);
}
// 4 кадр
if (position <= -842 && position >-1684) {
var myObject7:player = new player();
myObject7.playAll(qw_cont.qw_mc.chetyre);
}else{
var myObject8:stopper = new stopper();
myObject8.stopAll(qw_cont.qw_mc.chetyre);
}
}
}
}
// Здесь будут описаны объекты-кнопки:
qw_cont.vremya.gotoAndStop(0);
//При нажатии на фонарь запускается анимация "времена суток"
qw_cont.fonar_mc.addEventListener(MouseEvent.CLICK, oMClick);
function oMClick(e:MouseEvent):void
{
qw_cont.vremya.play();
}
И пара классов:

Код AS3:
package {
import flash.display.*;
public class stopper {
public function stopper() {
// constructor code
}
public function stopAll(obj:DisplayObject):void {
if (!obj) return;
if (obj is MovieClip) (obj as MovieClip).stop();
var objContainer:DisplayObjectContainer = obj as DisplayObjectContainer;
if (objContainer) {
for (var i:int = 0; i < objContainer.numChildren; i++ ) {
stopAll(objContainer.getChildAt(i));
}
}
}
}
}
Такой же класc player c play(); вместо stop();