あなたの質問はいくつかのサークルに入っていますが、私はあなたが望むものを手に入れたと思います.
これにはframelabelsを使用し、enterframeを使用して現在のフレームの現在のframelabelが何であるかを確認できます。または、知りたいフレームにフレームスクリプトを追加することもできます。
EnterFrame:
タイムラインで知っているフレームにラベルを追加します。おそらく、フレームラベルに「roll_start」、「roll_end」などの名前を付けます。
次に、enterframe を使用して、関心のあるフレームにいるかどうかを次のようにテストします。
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
private function enterFrameHandler(e:Event):void {
if (currentLabel == 'roll_start') {
// Rollover started
} else if (currentLabel == 'roll_end') {
// Rollover ended
}
}
フレームスクリプト:
文書化されていない frameScript メソッドを使用して、目的のフレームでカスタム バブル イベントをディスパッチするスクリプトを追加します。次に、enterframe をリッスンしてすべてのフレームをチェックするのではなく、そのイベントをリッスンします。
private static const TIMELINE_AT_LABEL:String = 'timelineAtLabel';
function frameScript():void {
dispatchEvent(new Event(TIMELINE_AT_LABEL, true, true));
}
var rollStartFrame:int = 10;
var rollEndFrame:int = 20;
addFrameScript(rollStartFrame, frameScript);
addFrameScript(rollEndFrame, frameScript);
addEventListener(TIMELINE_AT_LABEL, atLabelHandler);
private function atLabelHandler(e:Event):void {
var frame:int = e.target.currentFrame;
if (frame == rollStartFrame) {
// Rollover started
} else if (frame == rollEndFrame) {
// Rollover ended
}
}