【发布时间】:2023-03-07 15:47:01
【问题描述】:
我有一个弹性应用程序,它曾经是一个基于互联网的应用程序。在其中我有一个函数,当我告诉它创建错误消息时,它会创建工具提示错误消息。我将这个应用程序逐字提取到桌面应用程序中,并对其进行了一些重组以使其运行,但我并没有弄乱 mxml 文件的核心基础,该文件利用了这一点,除了将根标记从 's 类型更改为:分组'到's:Window'
一切运行正常,但工具提示未显示。我似乎无法弄清楚为什么,所以我想我会由你们来运行这个。这是工具提示代码(fx:script cdata 标记中的内联 mxml 代码):
import mx.controls.ToolTip;
import mx.managers.ToolTipManager;
public var errorTip:ToolTip;
private function createErrorMsg(errorMsg:String, object:Object):void {
if (errorTip){ToolTipManager.destroyToolTip(errorTip);};
errorTip = ToolTipManager.createToolTip(errorMsg,object.getBounds(root).x + object.width,object.getBounds(root).y) as ToolTip;
errorTip.setStyle("styleName", "errorTip");
errorTip.visible = true;
errorTip.enabled = true;
}
基本上,我将一个字符串和一个对象(文本输入、复选框、按钮等...等)传递给该函数,然后它会定位它并显示错误消息。这完全适用于我的网络版本,但不适用于我的桌面版本。
下面是实例化窗口的代码:
var window:LoginWindow = new LoginWindow();
Window.systemChrome = NativeWindowSystemChrome.NONE;
Window.transparent = true;
Window.open(true);
Window.maximize()
有什么想法吗?
附带说明一下,我检查函数开头是否存在 errorTip,然后将其销毁,以便更高范围的变量 'errorTip' 始终等于对当前显示的错误的引用。这使我可以在表单验证中销毁该错误提示,然后再次进行错误检查,但它一次只允许显示一个工具提示。有没有更好的方法来查询工具提示管理器以获取所有当前显示的工具提示并将它们全部销毁?
【问题讨论】:
-
我还想指出,我正在使用此设置,因为工厂错误工具提示系统要求您在显示工具提示之前将注意力集中在无效的字段上,而且并不总是很明显该字段无效。
标签: apache-flex tooltip