As3文本字段问题

时间:2013-06-14 19:02:25

标签: actionscript-3 flash textfield event-listener

我正在尝试创建一个按钮(movieClip按钮),当您将鼠标悬停在它上面时(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保存了stage访问权限。 (它适用于其他文本字段)。奇怪的是,如果我尝试添加一个movieclip而不是textfield,它的工作正常。

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

2 个答案:

答案 0 :(得分:0)

如果您在悬停在按钮上时想要创建工具提示,则应该将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。< / p>

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

答案 1 :(得分:0)

在设置setTextFormat属性后

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

priceString.defaultTextFormat = priceStringFormat