У меня есть вопрос, я написал следующий тест как класс:
package
{
import flash.display.MovieClip;
import flash.display.FrameLabel;
public class FrameLabels extends MovieClip
{
public function FrameLabels ()
{
var labelsList:Array = currentLabels;
for (var i:int = 0; i < currentLabels.length; i++)
{
if (currentLabels[i].name == "monday")
{
addFrameScript (currentLabels[i].frame-1, mondayHandler);
}
if (currentLabels[i].name == "tuesday")
{
addFrameScript (currentLabels[i].frame-1, tuesdayHandler);
}
if (currentLabels[i].name == "wednesday")
{
addFrameScript (currentLabels[i].frame-1, wednesdayHandler);
}
}
}
private function mondayHandler():void
{
trace("at monday at frame " + currentFrame);
}
private function tuesdayHandler():void
{
trace("at tuesday! at frame " + currentFrame);
}
private function wednesdayHandler():void
{
trace("at wednesday! at frame " + currentFrame);
}
}
}
У меня есть метки кадров: понедельник вторник среда
Это прекрасно работает в классе документов, однако,когда я помещаю его в кадр 1 моей временной шкалы, происходит сбой Flash.
У меня есть действие остановки в последнем кадре, поэтому точка воспроизведения не должна запускать сценарий снова и снова, есть ли причина, по которой это происходит сбой?
Код временной шкалы:
var labelsList:Array = currentLabels;
for (var i:int = 0; i < currentLabels.length; i++)
{
if (currentLabels[i].name == "monday")
{
addFrameScript (currentLabels[i].frame-1, mondayHandler);
}
if (currentLabels[i].name == "tuesday")
{
addFrameScript (currentLabels[i].frame-1, tuesdayHandler);
}
if (currentLabels[i].name == "wednesday")
{
addFrameScript (currentLabels[i].frame-1, wednesdayHandler);
}
}
function mondayHandler ():void
{
trace ("at monday at frame " + currentFrame);
}
function tuesdayHandler ():void
{
trace ("at tuesday! at frame " + currentFrame);
}
function wednesdayHandler ():void
{
trace ("at wednesday! at frame " + currentFrame);
}