Я портирую карточную игру с чистого Flash / AS3 на Flex 4.5:
Я почти закончил, но "речевые шары" отмечены синимцвета на скриншоте выше отсутствуют.
Эти "речевые шары" исчезают, отображают красный (если они содержат буквы "сердца" или "бриллианты") или черный текст и, наконец, исчезают.
I'mпытаясь реализовать их как mx.controls.ToolTip s и подготовив простой тестовый пример, в котором 3 пользователя представлены смайликами, и вы можете нажать кнопку «Talk», чтобы сделать их talk :
<?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)
ОБНОВЛЕНИЕ:
Я попробовал следующее
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).Интересно, можно ли вообще использовать всплывающую подсказку (ab), чтобы изящно представлять "речевые шары" ...