Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash as3-使用计时器更新动态文本的Movieclip。无更新_Flash_Actionscript 3 - Fatal编程技术网

Flash as3-使用计时器更新动态文本的Movieclip。无更新

Flash as3-使用计时器更新动态文本的Movieclip。无更新,flash,actionscript-3,Flash,Actionscript 3,我不熟悉as3。 我正在尝试使用Timer类创建一个非常简单的倒计时 我有一个movieclip,它有一个动态文本元素 movieclip使用一个包作为其代码 包(如果显然是从MovieClip类派生的) 我有一个计时器,它每秒更新一次动态文本字段 调试代码时,我发现计时器工作正常。它将更新动态文本字段的值 然而,由于某些原因,它无法更新ui本身。我在这里遗漏了什么?如果您的计时器正在“工作”(这意味着您可以跟踪它,并看到它正在按预期将值打印到日志中),那么很可能是您在文本字段中设置字体的方式有

我不熟悉as3。 我正在尝试使用
Timer
类创建一个非常简单的倒计时

  • 我有一个
    movieclip
    ,它有一个
    动态文本
    元素
  • movieclip
    使用一个包作为其代码
  • 包(如果显然是从MovieClip类派生的)
  • 我有一个
    计时器
    ,它每秒更新一次动态文本字段
  • 调试代码时,我发现计时器工作正常。它将更新动态文本字段的值

    然而,由于某些原因,它无法更新ui本身。我在这里遗漏了什么?

    如果您的计时器正在“工作”(这意味着您可以跟踪它,并看到它正在按预期将值打印到日志中),那么很可能是您在文本字段中设置字体的方式有问题。
    如果您确定文本字段的实例名称被正确调用(跟踪对象以确保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