Flash as3-使用计时器更新动态文本的Movieclip。无更新
我不熟悉as3。 我正在尝试使用Flash as3-使用计时器更新动态文本的Movieclip。无更新,flash,actionscript-3,Flash,Actionscript 3,我不熟悉as3。 我正在尝试使用Timer类创建一个非常简单的倒计时 我有一个movieclip,它有一个动态文本元素 movieclip使用一个包作为其代码 包(如果显然是从MovieClip类派生的) 我有一个计时器,它每秒更新一次动态文本字段 调试代码时,我发现计时器工作正常。它将更新动态文本字段的值 然而,由于某些原因,它无法更新ui本身。我在这里遗漏了什么?如果您的计时器正在“工作”(这意味着您可以跟踪它,并看到它正在按预期将值打印到日志中),那么很可能是您在文本字段中设置字体的方式有
Timer
类创建一个非常简单的倒计时
movieclip
,它有一个动态文本
元素movieclip
使用一个包作为其代码计时器
,它每秒更新一次动态文本字段如果您确定文本字段的实例名称被正确调用(跟踪对象以确保Flash知道它,如在…trace(myTextField);//(如果您已将文本字段的实例名称设置为“myTextField”,则该名称不应为空或未定义) 如果这一切都是正确的,那么几乎可以肯定这是字体嵌入问题。这就是CS4>真正搞糟的地方。单击文本字段,选择一种字体,然后单击嵌入字体。在嵌入字体并为其命名(“myArialBold”)后,您需要在可用字体列表中找到*myArialBold(在属性窗格中,而不是在字体对话框中)并选择嵌入的字体 它没有任何合理的意义,因为您*感觉自己在“嵌入”对话框中选择了字体,但事实上,这正是您将字体嵌入到环境中的地方,在您从所有字体的下拉列表中选择字体之前,它实际上不会对这个特定的文本字段生效(现在它也将位于顶部,位于所有自定义嵌入字体所在的线条上方) 好处是,在这个项目的整个过程中,它都会出现,您可以选择它作为任何文本字段(不需要再次嵌入它) 不利的一面是,如果你曾经删除嵌入但忘记更改任何文本字段上的关联,每次打开此项目时,Flash都会抱怨正在寻找的字体丢失,你会撕掉你头上的每一根头发,寻找此文本字段的位置。在一个大项目中,我看到这导致人们杀人很伤心 如果这不起作用,我们需要查看更多的代码:)如果计时器正在“工作”(意味着您可以跟踪它,并看到它正在按预期将值打印到日志中),那么很可能是您在文本字段中设置字体的方式有问题。
如果您确定文本字段的实例名称被正确调用(跟踪对象以确保Flash知道它,如在…trace(myTextField);//(如果您已将文本字段的实例名称设置为“myTextField”,则该名称不应为空或未定义) 如果这一切都是正确的,那么几乎可以肯定这是字体嵌入问题。这就是CS4>真正搞糟的地方。单击文本字段,选择一种字体,然后单击嵌入字体。在嵌入字体并为其命名(“myArialBold”)后,您需要在可用字体列表中找到*myArialBold(在属性窗格中,而不是在字体对话框中)并选择嵌入的字体 它没有任何合理的意义,因为您*感觉自己在“嵌入”对话框中选择了字体,但事实上,这正是您将字体嵌入到环境中的地方,在您从所有字体的下拉列表中选择字体之前,它实际上不会对这个特定的文本字段生效(现在它也将位于顶部,位于所有自定义嵌入字体所在的线条上方) 好处是,在这个项目的整个过程中,它都会出现,您可以选择它作为任何文本字段(不需要再次嵌入它) 不利的一面是,如果你曾经删除嵌入但忘记更改任何文本字段上的关联,每次打开此项目时,Flash都会抱怨正在寻找的字体丢失,你会撕掉你头上的每一根头发,寻找此文本字段的位置。在一个大项目中,我看到这导致人们杀人很伤心
如果这不起作用,我们将需要查看更多的代码:)除了这个基本测试之外,没有更多内容了……其他问题可能与文本格式有关,但就计时器而言,它实际上并没有超出这个范围 如果您是AS3新手,请尝试将应用程序分解为更小的块,以找出它的分解位置
private var textfield:TextField = new TextField();
private var increment:int;
private var timer:Timer = new Timer( 1000 );
private function init():void
{
addChild( textfield );
timer.addEventListener( TimerEvent.TIMER , updateText );
timer.start();
}
private function updateText( event:TimerEvent):void
{
increment++;
textfield.text = increment.toString();
}
没有什么比这个基本测试更重要了……其他问题可能与文本格式有关,但就计时器而言,它实际上并没有超出这个范围 如果您是AS3新手,请尝试将应用程序分解为更小的块,以找出它的分解位置
private var textfield:TextField = new TextField();
private var increment:int;
private var timer:Timer = new Timer( 1000 );
private function init():void
{
addChild( textfield );
timer.addEventListener( TimerEvent.TIMER , updateText );
timer.start();
}
private function updateText( event:TimerEvent):void
{
increment++;
textfield.text = increment.toString();
}
你能粘贴一段代码吗?你能粘贴一段代码吗?搞砸了小狗。哈哈哈..但这是一个巨大的难题,我花了10个小时才弄明白,很高兴我不是唯一的一个:啊…当我偶然发现这一点时,我损失了相似的时间,似乎是在我下载更新后。没有人见过这种字体m当时的机制……很痛苦。搞坏了小狗。哈哈哈……但这是一个巨大的难题,我花了10个小时才弄明白,很高兴我不是唯一的一个:黛雅……当我偶然发现这一点时,我损失了类似的时间,似乎是在我下载更新后。当时没有人见过这种字体机制……这很痛苦。注意到,就像这样如前所述,您没有对计时器的引用,因此在某个时候它可能会出现ga