0

私はFlashAS3、iOSSDK用のAIR3.2で作業しています。TextFieldを表示し、画面の右側から左側に自動的にトゥイーンし、消えてから、ループで再び右側から再表示しようとしています。

これとその背後にあるロジックのコーディングをどのように開始するかを理解しようとしています。現在、スクロールを実行しているMarqueeTextFieldというクラスがあります。ただし、文字を文字から文字にスクロール/マーキーするだけで、画面上のポイントからポイントへはスクロール/マーキーしません。また、低速でスクロールするときに「途切れ」、スムーズではありません。

public class MarqueeTextField extends TextField
{
    /** Timer that ticks every time the marquee should be updated */
    private var __marqueeTimer:Timer;

    /**
    *   Make the text field
    */
    public function MarqueeTextField()
    {
        __marqueeTimer = new Timer(0);
        __marqueeTimer.addEventListener(TimerEvent.TIMER, onMarqueeTick);
    }

    /**
    *   Callback for when the marquee timer has ticked
    *   @param ev TIMER event
    */
    private function onMarqueeTick(ev:TimerEvent): void
    {
        this.text = this.text.substr(1) + this.text.charAt(0);
    }

    /**
    *   Start marqueeing
    *   @param delay Number of milliseconds between wrapping the first
    *                character to the end or negative to stop marqueeing
    */
    public function marquee(delay:int): void
    {
        __marqueeTimer.stop();
        if (delay >= 0)
        {
            __marqueeTimer.delay = delay;
            __marqueeTimer.start();
        }
    }
}
}

検索しましたが、AS3のみを使用しているものはないようです(Flash GUIを使用しています)。私がこれをどのようにコーディングし始め、低速でもスムーズにする方法を私に説明できる人はいますか?

4

1 に答える 1

1

本当に必要な場合は、いつでもGreenSockのTweeningエンジンを使用できます。パッケージをインポートして、を使用するだけTweenLite.to()です。また、テキストボックスの位置を実際に変更するのではなく、テキストを挿入しているように見えます。

于 2013-02-01T19:44:24.467 に答える