我正在使用Flash AS3,AIR 3.2 for iOS SDK。我正在尝试使 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)。有人能够向我解释我如何开始编码并使其即使在低速下也能流畅吗?
如果你真的必须,你可以随时使用GreenSock的补间引擎。只需导入包并简单地使用 TweenLite.to()
.此外,看起来您只是在插入文本,而不是实际更改文本框的位置。