私は正常に動作するこのコードを作成しました-私の問題は、最後に最初からやり直したいということです。
これを作成し始めたとき、.swf ムービーが終了時にループすることを意図していましたが、そうはなりませんでした。次に、タイマーと文字列をリセットするコード自体に一種の「再起動」機能を作成しようと考えました.
最初に、変数 i をリセットしようとしました。次に、タイマー eventListeners を削除しようとしました。しかし、成功はありません。
このコードを最初からやり直すための最善の方法は何でしょうか?
import flash.utils.Timer;
import flash.events.TimerEvent;
import com.greensock.*;
import com.greensock.easing.*;
var str_one:String = 'På fredag udkommer metroXpress, som du kender den, for sidste gang... ';
var i:uint = 0;
var timer_one:Timer = new Timer(50);
timer_one.start();
timer_one.addEventListener(TimerEvent.TIMER, goTime);
var str_two:String = 'På fredag udkommer metroXpress, som du kender den, for sidste gang... Fra 2. april bliver du mødt af en helt ny avis, med det bedste fra den gamle, tilsat en masse nyt.';
var timer_two:Timer = new Timer(50);
timer_two.addEventListener(TimerEvent.TIMER, goTime_two);
var str_three:String = 'På fredag udkommer metroXpress, som du kender den, for sidste gang... Fra 2. april bliver du mødt af en helt ny avis, med det bedste fra den gamle, tilsat en masse nyt.Sådan vil vi skabe en endnu bedre avis til dig, der er på farten. Glæd dig – det gør vi!';
var timer_three:Timer = new Timer(50);
timer_three.addEventListener(TimerEvent.TIMER, goTime_three);
function goTime(e:TimerEvent) {
tekstbox1_txt.appendText(str_one.charAt(i));
i++;
if (i>=str_one.length) {
timer_one.stop();
TweenLite.to(hand, 1, {y:175, onComplete:ripwhite});
}
}
function ripwhite():void {
TweenLite.to(hand, 1, {y:405});
TweenLite.to(white_mask, 1, {y:320, onComplete:fadetekst1ud});
}
function fadetekst1ud():void {
TweenLite.to(tekstbox1_txt, 1, {alpha:0, onComplete:tekstnr2});
}
function tekstnr2():void {
timer_two.start();
}
function goTime_two(e:TimerEvent) {
tekstbox2_txt.appendText(str_two.charAt(i));
i++;
if (i>=str_two.length) {
timer_two.stop();
TweenLite.to(tekstbox2_txt, 1, {alpha:1, onComplete:forsinkelse});
}
}
function forsinkelse():void {
TweenLite.to(tekstbox2_txt, 1, {alpha:0, onComplete:tekstnr3});
}
function tekstnr3():void {
timer_three.start();
}
function goTime_three(e:TimerEvent) {
tekstbox3_txt.appendText(str_three.charAt(i));
i++;
if (i>=str_three.length) {
timer_three.stop();
TweenLite.to(tekstbox3_txt, 1, {alpha:1, onComplete:sidstefunktion});
}
}
function sidstefunktion():void {
TweenLite.to(tekstbox3_txt, 1, {alpha:0});
TweenLite.to(rippedpic, 1, {alpha:0});
}
編集:
リセット関数を設定してから、次のように最初の関数にループバックする場合:
function nulstil():void {
i = 0;
TweenLite.killTweensOf(hand);
TweenLite.killTweensOf(tekstbox1_txt);
TweenLite.killTweensOf(tekstbox2_txt);
TweenLite.killTweensOf(tekstbox3_txt);
timer_one.addEventListener(TimerEvent.TIMER, goTime);
timer_two.addEventListener(TimerEvent.TIMER, goTime_two);
timer_two.addEventListener(TimerEvent.TIMER, goTime_three);
TweenLite.to(white_mask, 0.1, {onComplete:goTimeAgain});
}
出力に次のように表示されます。
ArgumentError: エラー #1063: Untitled_fla::MainTimeline/goTimeAgain() で引数の数が一致しません。Function/ http://adobe.com/AS3/2006/builtin::apply() で com.greensock.core::TweenCore/complete() で com.greensock::TweenLite/renderTime( ) com.greensock.core::SimpleTimeline/renderTime() で com.greensock::TweenLite$/updateAll() で