我有一个TimerEvent,它每秒改变一次形状的alpha:
private function changeLightStatus(e:TimerEvent):void{
if (boolFlashOn == false){
light.alpha = 1;
boolFlashOn = true;
}else{
light.alpha = 0.5;
boolFlashOn = false;
}
没问题,它工作正常,但是下面有一个<s:TextArea/>
,当用户滚动时,计时器暂停,形状停止闪烁。
我查看了其他问题,并回答说要创建新的时间线程,以使它们不连接,但显然我无法在Flash Builder中执行此操作(如果我输入错了,请纠正我)
预先感谢
答案 0 :(得分:1)
我已经更新了您的标签,使其包含Flex,但是很遗憾,我只使用过纯AS3(没有Flex标签)。
因此,在等待更好的答案时,您可以尝试...
(1)
addChild(light)
时,还设置为:light.mouseChildren = light.mouseEnabled = false;
。
(2)
否则,请考虑使用EnterFrame
而不是Timer
:
//# add to initial setup of vars...
var counter:int = 0;
stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
然后添加支持功能
private function onEnterFrame (e:Event) : void
{
if ( count >= 50)
{
if (boolFlashOn == false)
{ light.alpha = 1; boolFlashOn = true; }
else
{ light.alpha = 0.5; boolFlashOn = false; }
count = 0; //reset for next loop
}
count++
}
让我知道怎么回事...
答案 1 :(得分:1)
作为使用文本区域的替代方法,我进行了以下操作:
<s:Group width="{this.width*0.8}" height="{this.height*0.175}" top="{this.height*0.475}" horizontalCenter="0">
<s:Rect left="0" right="0" top="0" bottom="0">
<s:fill>
<s:SolidColor color="0xFFFFFF"/>
</s:fill>
</s:Rect>
<s:Scroller>
<s:Group width="{this.width*0.8}" height="{this.height*0.175}" top="{this.height*0.475}" horizontalCenter="0">
<s:Label id="lblInfo" color="0x000000" width="{this.width*0.8}"/>
</s:Group>
</s:Scroller>
</s:Group>
这创建了一个非常基本的框,用户可以在其中滚动文本并且不会影响我的timerEvent。
我仍然想知道textArea暂停时间轴的原因。我举了一个非常简单的例子:
<?xml version="1.0" encoding="utf-8"?>
<fx:Script>
<![CDATA[
private var tmrTest : Timer = new Timer(100);
private var boolTest : Boolean = false;
private function init():void{
tmrTest.addEventListener(TimerEvent.TIMER, testChange)
tmrTest.start();
}
private function testChange(e:TimerEvent):void{
if (boolTest == false){
btnTest.label = "Bye";
boolTest = true;
}else{
btnTest.label = "Hi";
boolTest = false;
}
}
]]>
</fx:Script>
<s:Button id="btnTest" label="Hi" width="{this.width*0.5}" height="{this.height*0.1}"/>
<s:Group width="{this.width*0.8}" height="{this.height*0.175}" top="{this.height*0.475}" horizontalCenter="0">
<s:Rect left="0" right="0" top="0" bottom="0">
<s:fill>
<s:SolidColor color="0xFFFFFF"/>
</s:fill>
</s:Rect>
<s:Scroller>
<s:Group width="{this.width*0.8}" height="{this.height*0.175}" top="{this.height*0.475}" horizontalCenter="0">
<s:Label color="0x000000" width="{this.width*0.8}"
text="{'a\nb\nc\nd\ne\nf\ng'}"/>
</s:Group>
</s:Scroller>
</s:Group>
<s:TextArea width="{this.width*0.8}" height="{this.height*0.175}" top="{this.height*0.725}" horizontalCenter="0" editable="false"
text="{'a\nb\nc\nd\ne\nf\ng'}"/>
我之前应该提到它是在iPhone而不是模拟器上运行的。模拟器没有给我任何问题,我也没有尝试过android。