Использование временной шкалы обычно считается не лучшей практикой. Вы, как правило, найдете дизайнеров, которые начинают программирование, как правило, используют временную шкалу, как то, к чему они привыкли. Также программисты, которые начали с AS1 или AS2, как правило, имеют плохие habbits. Если что-то стоит делать правильно.
Проблема с использованием временной шкалы заключается в управлении вашими переменными состояниями. Любые переменные, объявленные в кадре, будут потеряны, если вы перейдете к другому кадру (кроме первого кадра). Чтобы продемонстрировать, представьте себе этот базовый пример:
В первом кадре есть кнопка параметров, которая при нажатии переходит к другому варианту кадра. В этом кадре параметров есть кнопка проверки, а также объявляется другой объект. Он также имеет кнопку для возврата в главное меню. Это то, на что похоже, когда компилятор сгенерировал его в код:
package DemoAvoid_fla
{
import fl.controls.*;
import flash.display.*;
import flash.events.*;
dynamic public class MainTimeline extends MovieClip
{
public var btnOptions:SimpleButton;
public var chkHints:CheckBox;
public var myWorld:Object;
public var btnReturnToMainMenu:SimpleButton;
public var declareSomeInstace:Object;
public function MainTimeline()
{
addFrameScript(0, this.frame1, 1, this.frame2);
return;
}// end function
public function onOptionsClick(event:MouseEvent) : void
{
gotoAndStop("options");
return;
}// end function
function frame1()
{
stop();
this.myWorld = new Object();
this.btnOptions.addEventListener(MouseEvent.CLICK, this.onOptionsClick);
return;
}// end function
public function onReturnToMainMenu(event:Event) : void
{
gotoAndStop("mainMenu");
return;
}// end function
function frame2()
{
stop();
this.chkHints.addEventListener(Event.CHANGE, this.onHintsChange);
this.btnReturnToMainMenu.addEventListene(MouseEvent.CLICK,this.onReturnToMainMenu);
this.declareSomeInstace = new Object();
return;
}// end function
public function onHintsChange(event:Event) : void
{
var _loc_2:* = event.target.selected;
trace(_loc_2);
return;
}// end function
}
}
Теперь вот в чем проблема. Если бы вы перешли к странице параметров, то вернитесь в главное меню, вы закончите сброс состояния переменной, когда теперь создаете новый экземпляр моего мира (и использование памяти увеличивается, поскольку сборщик мусора не будет мгновенным). Вы также потеряли свой экземпляр на странице параметров.
Мой стиль кодирования для меню заключается в создании каждого экрана в качестве мувиклипа. Затем поместите каждый мувиклип на первый кадр, но на разные слои. Затем я скрыть/показать слой, который я хочу.Его также легко контролировать из внешних классов и так же быстро разрабатывать и избегать любых проблем, о которых я упомянул :)
можно присвоить метку кадру и использовать gotoAndPlay (frameNum или label) – oldUser