私は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を使用しています)。私がこれをどのようにコーディングし始め、低速でもスムーズにする方法を私に説明できる人はいますか?