【发布时间】:2012-01-10 16:27:51
【问题描述】:
我有一个高级数据网格,其中包含状态、启用、所有者、名称等列。
我将获取状态数据为 'applicable' 或 'success' 或 'failure' 。 当状态为“适用”时,我必须在将鼠标移到那里时显示工具提示。你能帮我看看怎么做吗?
【问题讨论】:
标签: actionscript-3 apache-flex flex4 flex3
我有一个高级数据网格,其中包含状态、启用、所有者、名称等列。
我将获取状态数据为 'applicable' 或 'success' 或 'failure' 。 当状态为“适用”时,我必须在将鼠标移到那里时显示工具提示。你能帮我看看怎么做吗?
【问题讨论】:
标签: actionscript-3 apache-flex flex4 flex3
如果您的工具提示在您的 xml 数据中,您可以在 DataGridColumn 上指定 dataTipField。
例如:
var col:DataGridColumn = new DataGridColumn();
col.dataTipField = "@statusTooltip";
col.showDataTips = true;
如果您的 xml 项目看起来像:
<item id="..." status="applicable" statusTooltip="My tootlip text"/>
【讨论】:
如果不需要TooTip Manager,那么您可以使用dataTip 函数来构造消息并将列的displayToolTip 属性设置为true。
【讨论】:
您需要创建一个 GridItemRenderer,这里有一些示例代码可以放在您的自定义 GridItemRenderer 的脚本块中:
import mx.controls.ToolTip;
import mx.core.IUIComponent;
import mx.managers.ToolTipManager;
public var applicableToolTip:ToolTip;
private function createToolTip(event:Event):void {
if (data["status"] == "applicable") {
var stagePoint:Point = event.target.localToGlobal(new Point(event.target.x, event.target.y));
applicableToolTip = ToolTipManager.createToolTip(
"Your applicable message here",
stagePoint.x,
stagePoint.y,
null,
IUIComponent(event.currentTarget)
) as ToolTip;
}
}
private function destroyToolTip(event : Event) : void {
if (applicableToolTip != null)
ToolTipManager.destroyToolTip(applicableToolTip);
}
然后在渲染器的标签字段中添加属性rollOver="createToolTip(event)"和rollOut="destroyToolTip(event)"
【讨论】: