我从单纯的Flash/AS3移植纸牌游戏到Flex 4.5:显示黑色和红色的工具提示语音baloons
我差不多完成了,但“讲话baloons”打上了上面屏幕截图中的蓝色缺失。
那些“语音气球”会淡入,显示红色(如果它们包含心脏或钻石字符)或黑色文本,并最终淡出。
我试图执行这些为mx.controls.ToolTip S和已经准备了一个简单的测试情况下,如果3个用户被笑脸按钮来表示,您可以按“通话”按钮上,使他们谈话:
<?xml version="1.0"?>
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark"
width="400" height="300"
initialize="init();">
<fx:Declarations>
<s:Fade id="fadeIn" alphaFrom="0" alphaTo="1" duration="2000"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.managers.ToolTipManager;
private var i:uint = 0;
private function init():void {
ToolTipManager.enabled = false;
ToolTipManager.showEffect = fadeIn;
}
private function talk():void {
var str:String = 'Me plays 10' + (i % 2 ? '♥' : '♠');
// this does not make the ToolTip appear?
this['user' + (++i % 3)].toolTip = str;
// how to set color according to isRed(str)?
}
private function isRed(str:String):Boolean {
return (str.indexOf('♦') > 0 || str.indexOf('♥') > 0);
}
]]>
</fx:Script>
<s:Button id="user0" horizontalCenter="0" bottom="0" label=":-)" />
<s:Button id="user1" left="0" top="0" label=":-)" />
<s:Button id="user2" right="0" top="0" label=":-)" />
<s:Button right="0" bottom="0" label="Talk!" click="talk()" />
</s:Application>
可有人请给我提示吗?
- 如何使工具提示随意出现? (不只是在鼠标悬停)
- 如何改变它们的颜色(我只找到了如何通过CSS设置一次吧)
UPDATE:
我已经试过以下
private var tip0:ToolTip;
private var tip1:ToolTip;
private var tip2:ToolTip;
private function talk():void {
var str:String = 'Me plays 10' + (++i % 2 ? '♥' : '♠');
var btn:Button = this['user' + (i % 3)];
var tip:ToolTip = this['tip' + (i % 3)];
tip = ToolTipManager.createToolTip(str, btn.x + 10, btn.y + 10, "errorTipBelow", IUIComponent(btn)) as ToolTip;
}
但是这不工作太好 - 没有影响,没有消失(我想我必须自己调用destroyToolTip)。我不知道ToolTip是否可以(ab)用于我以优雅的方式代表“语音聊天室”的目的......