我有一個flex應用程序,曾經是一個基於互聯網的應用程序。其中我有一個函數,當我告訴它創建錯誤消息時,會創建工具提示錯誤消息。我將這個應用程序逐字地提取到桌面應用程序中,並稍微調整了一些東西以使其運行,但是我並沒有弄亂mxml文件的核心基礎,該文件利用這一點從一種類型的改變根標籤:組'到's:窗口'Flex 4桌面應用程序TooltipManager
一切運行正常,但工具提示未顯示。我似乎無法弄清楚爲什麼,所以我想我會由你們運行。這裏的工具提示代碼(內嵌MXML代碼FX:腳本CDATA標籤):
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」總是等於參考當前顯示的錯誤。這使我可以在表單驗證中摧毀該錯誤提示,然後再次進行錯誤檢查,但它只允許一次顯示一個工具提示。有沒有更好的方法來查詢工具提示管理器的所有當前顯示的工具提示並將其全部銷燬?
我也想請注意,我正在使用此設置,因爲工廠錯誤工具提示系統要求您在顯示工具提示之前將焦點放在無效的字段上,並且字段無效並不總是顯而易見的。 –