0

我正在尝试制作一个按钮(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

4

2 回答 2

0

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

PS:详细教程见:

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

编辑:

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

在按钮的 mouseover 处理程序中,将 sprite 的visible属性设置为true,然后在 mouseout 处理程序中将其重置。

于 2013-06-14T19:29:02.477 回答
0

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

priceString.defaultTextFormat = priceStringFormat

于 2013-06-14T20:24:54.900 回答