【问题标题】:As3 text field issueAs3 文本字段问题
【发布时间】:2013-06-11 12:27:57
【问题描述】:

我正在尝试制作一个按钮(movieClip-button),当您将鼠标悬停在它上面时(MOUSE_OVER),它会调用一个显示一些文本的函数。唯一的问题是它不起作用:p。或者至少不是我希望它工作的方式。问题是当我第一次将鼠标悬停在它上面时,什么也没有显示。如果我然后从影片剪辑中删除鼠标并再次将鼠标悬停在它上面就可以了。这是我的代码:

private var priceString:TextField = new TextField();

    private function addText(price:String):void{
        var priceStringFormat = new TextFormat;
        priceStringFormat.color = 0xFF0000;
        priceStringFormat.font = 'TradeGothic';    
        priceStringFormat.size = 30;
        priceString.x = 285;
        priceString.y = 15;
        priceString.setTextFormat(priceStringFormat);
        priceString.autoSize = TextFieldAutoSize.LEFT;
        priceString.text = "Upgrade Costs: " + price;
        getStage.addChild(priceString);
}

我自己看不到问题所在:s。同一类中相同格式的其他文本字段也可以正常工作。 getStage var 持有舞台访问权限。 (它适用于其他文本字段)。奇怪的是,如果我尝试添加一个影片剪辑而不是文本字段,它工作得很好。

它应该是这样的: http://i.stack.imgur.com/5a0jf.png

【问题讨论】:

    标签: actionscript-3 flash textfield event-listener


    【解决方案1】:

    setTextFormat 需要在您设置text 属性之后发生。如果出于某种原因需要在设置 textFormat 之前进行格式化,请使用

    priceString.defaultTextFormat = priceStringFormat

    【讨论】:

      【解决方案2】:

      如果您说要在将鼠标悬停在按钮上时创建工具提示,您可能应该将TextField 放入Sprite 对象中。将TextField 添加为Sprite 的子级,并将Sprite 添加为舞台的子级。然后,对 Sprite 的 alpha 值进行补间或使用 Sprite.visible 切换其可见性。

      PS:详细教程见:

      http://hub.tutsplus.com/tutorials/create-a-customizable-tooltip-in-actionscript-30--active-1793

      编辑:

      根据您提供的图像,您需要在按钮的构造函数中创建一个以 TextField 作为其子元素的精灵,并将精灵的 visible 属性设置为 false

      在按钮的鼠标悬停处理程序中,将精灵的visible 属性设置为true,然后在鼠标悬停处理程序中将其重置。

      【讨论】:

      • 我不确定这正是我正在寻找的东西,无论如何,谢谢。我添加了一个链接,以便您更好地理解。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 2010-11-09
      • 1970-01-01
      • 2011-02-04
      相关资源
      最近更新 更多