套件 | flash.html |
類別 | public class HTMLHost |
繼承 | HTMLHost Object |
執行階段版本: | AIR 1.0 |
window
物件的各種屬性或呼叫其各種方法來控制的使用者介面元素,定義 HTMLLoader 物件的行為指令。這些方法和屬性包括:
-
window.blur()
-
window.focus()
-
window.moveBy()
-
window.moveTo()
-
window.location
-
window.close()
-
window.open()
-
window.resizeBy()
-
window.resizeTo()
-
window.status
-
window.document.title
HTMLHost 類別中的方法可處理其中每個 window
設定的變更。若要使用這個類別,請建立一個擴充 HTMLHost 類別並覆寫您要定義行為指令之方法的新類別 (子類別)。HTMLHost 類別的方法會如下處理 JavaScript 屬性和方法:
JavaScript 屬性或方法 | HTMLHost 方法 |
---|---|
window.blur()
|
windowBlur()
|
window.focus()
|
windowFocus
|
window.location
|
updateLocation
|
window.close()
|
windowClose
|
window.open()
|
createWindow
|
window.status
|
updateStatus
|
window.document.title
|
updateTitle
|
若要回應 window.moveBy()
、window.moveTo()
、window.resizeBy()
和 window.resizeTo()
方法的變更,請在 HTMLHost 的子類別中覆寫 set windowRect()
方法。
每個 HTMLHost 物件最多可以與一個 HTMLLoader 物件相關聯。指定 HTMLHost 實體給 HTMLLoader 物件的 htmlHost
屬性,會建立此關係。指定 null
給 HTMLLoader 物件的 htmlHost
屬性,或將 HTMLHost 物件設定為另一個 HTMLLoader 物件的 htmlHost
屬性,則會從第一個 HTMLLoader 物件移除 HTMLHost。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
htmlLoader : flash.html:HTMLLoader [唯讀]
這個 HostControl 物件套用到的 HTMLLoader 物件。 | HTMLHost | ||
windowRect : Rectangle
當 HTMLLoader 物件中的 JavaScript 程式碼呼叫 window.moveBy()、window.moveTo()、window.resizeBy() 或 window.resizeTo() 方法時變更的屬性。 | HTMLHost |
方法 | 定義自 | ||
---|---|---|---|
建立 HTMLHost 物件。 | HTMLHost | ||
當 HTMLLoader 物件中的 JavaScript 程式碼呼叫 window.open() 方法時所呼叫的函數。 | HTMLHost | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
當 HTMLLoader 物件中的 JavaScript 程式碼設定 window.location 屬性時所呼叫的函數。 | HTMLHost | ||
當 HTMLLoader 物件中的 JavaScript 程式碼設定 window.status 屬性時所呼叫的函數。 | HTMLHost | ||
當 HTMLLoader 物件中的 JavaScript 程式碼設定 window.document.title 屬性,或當 title 元素透過 DOM 或因新頁面載入而變更時所呼叫的函數。 | HTMLHost | ||
會傳回指定之物件的基本值。 | Object | ||
當 HTMLLoader 物件中的 JavaScript 程式碼呼叫 window.blur() 方法時所呼叫的函數。 | HTMLHost | ||
當 HTMLLoader 物件中的 JavaScript 程式碼呼叫 window.close() 方法時所呼叫的函數。 | HTMLHost | ||
當 HTMLLoader 物件中的 JavaScript 程式碼呼叫 window.focus() 方法時所呼叫的函數。 | HTMLHost |
htmlLoader | 屬性 |
htmlLoader:flash.html:HTMLLoader
[唯讀] 執行階段版本: | AIR 1.0 |
這個 HostControl 物件套用到的 HTMLLoader 物件。該 HTMLLoader 物件的 htmlHost
屬性會設定為這個 HostControl 物件。
實作
public function get htmlLoader():flash.html:HTMLLoader
相關 API 元素
windowRect | 屬性 |
windowRect:Rectangle
執行階段版本: | AIR 1.0 |
當 HTMLLoader 物件中的 JavaScript 程式碼呼叫 window.moveBy()
、window.moveTo()
、window.resizeBy()
或 window.resizeTo()
方法時變更的屬性。
在 HTMLHost 的子類別中,視需要覆寫 set windowRect()
方法以處理新視窗邊界。
實作
public function get windowRect():Rectangle
public function set windowRect(value:Rectangle):void
HTMLHost | () | 建構函式 |
createWindow | () | 方法 |
public function createWindow(windowCreateOptions:flash.html:HTMLWindowCreateOptions):flash.html:HTMLLoader
執行階段版本: | AIR 1.0 |
當 HTMLLoader 物件中的 JavaScript 程式碼呼叫 window.open()
方法時所呼叫的函數。
根據預設,HTMLLoader 之 HTML 網頁中的 JavaScript window.open()
呼叫「不」會在執行階段開啟新的 NativeWindow 物件。您可以透過在 HTMLHost 類別之子類別的 createWindow
方法覆寫中建立新的 NativeWindow 物件,在執行階段開啟新的 NativeWindow 物件。
參數
windowCreateOptions:flash.html:HTMLWindowCreateOptions — 物件,包含字串中當做 window.open() 方法呼叫的 features 參數傳遞的屬性。
|
flash.html:HTMLLoader — 包含新 HTML 網頁的 HTMLLoader 物件。一般來說,您可以用這個方式建立新的 HTMLLoader 物件、將它加入新 NativeWindow 物件的舞台,然後傳回它。
|
updateLocation | () | 方法 |
updateStatus | () | 方法 |
updateTitle | () | 方法 |
windowBlur | () | 方法 |
public function windowBlur():void
執行階段版本: | AIR 1.0 |
當 HTMLLoader 物件中的 JavaScript 程式碼呼叫 window.blur()
方法時所呼叫的函數。
windowClose | () | 方法 |
public function windowClose():void
執行階段版本: | AIR 1.0 |
當 HTMLLoader 物件中的 JavaScript 程式碼呼叫 window.close()
方法時所呼叫的函數。
根據預設,HTMLLoader 物件之 HTML 網頁中的 JavaScript window.close()
呼叫會關閉包含 HTMLLoader 物件的視窗。
windowFocus | () | 方法 |
public function windowFocus():void
執行階段版本: | AIR 1.0 |
當 HTMLLoader 物件中的 JavaScript 程式碼呼叫 window.focus()
方法時所呼叫的函數。
window
物件的各種屬性或呼叫其各種方法時,所採取的動作:
package { import flash.html.HTMLHost; import flash.html.HTMLLoader; import flash.display.NativeWindow; import flash.display.NativeWindowInitOptions; import flash.display.StageScaleMode; import flash.geom.Rectangle; import flash.text.TextField; public class CustomHost extends HTMLHost { import flash.html.*; public var statusField:TextField; public function CustomHost(defaultBehaviors:Boolean=true) { super(defaultBehaviors); } override public function windowClose():void { htmlLoader.stage.window.close(); } override public function createWindow(windowCreateOptions:HTMLWindowCreateOptions):HTMLLoader { var initOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); var window:NativeWindow = new NativeWindow(initOptions); window.visible = true; var htmlLoader2:HTMLLoader = new HTMLLoader(); htmlLoader2.width = window.width; htmlLoader2.height = window.height; window.stage.scaleMode = StageScaleMode.NO_SCALE; window.stage.addChild(htmlLoader2); return htmlLoader2; } override public function updateLocation(locationURL:String):void { trace(locationURL); } override public function set windowRect(value:Rectangle):void { htmlLoader.stage.nativeWindow.bounds = value; } override public function updateStatus(status:String):void { statusField.text = status; } override public function updateTitle(title:String):void { htmlLoader.stage.nativeWindow.title = title + "- Example Application"; } override public function windowBlur():void { htmlLoader.alpha = 0.5; } override public function windowFocus():void { htmlLoader.alpha = 1; } } }
statusBar
的 TextField 物件。HTMLLoader 物件會將 CustomHost 物件定義為其 htmlHost
屬性:
package { import flash.display.Sprite; public class SimpleHTMLBox extends Sprite { import flash.html.HTMLHost; import flash.html.HTMLLoader; import flash.text.TextField; import flash.net.URLRequest; import CustomHost; private var host:CustomHost; private var statusField:TextField; private var html:HTMLLoader; public function SimpleHTMLBox() { html = new HTMLLoader(); var url:String = "Test.html"; var urlReq:URLRequest = new URLRequest(url); html.load(urlReq); host = new CustomHost(); html.htmlHost = host; statusField = new TextField(); host.statusField = statusField; configureUI(); } private function configureUI():void { html.width = 400; html.height = 200; statusField.width = 400; statusField.height = 24; statusField.border = true; statusField.y = 200; addChild(html); addChild(statusField); } } }
建立一個 AIR 應用程式,將這個類別定義的物件加入主視窗的舞台。
在應用程式資源目錄 (包含應用程式描述器檔案的目錄) 中建立一個名為 Test.html 的 HTML 頁面,並且在網頁中加入下列內容:
<html> <head> <title>Test</title> </head> <body> <a href="#" onclick="window.open('Test.html')">window.open('Test.html')</a> <br/><a href="#" onclick="window.document.location = 'www.adobe.com'">window.document.location = 'www.adobe.com'</a> <br/><a href="#" onclick="window.moveBy(6, 12)">moveBy(6, 12)</a> <br/><a href="#" onclick="window.close()">window.close()</a> <br/><a href="#" onclick="window.blur()">window.blur()</a> <br/><a href="#" onclick="window.focus()">window.focus()</a> <br/><a href="#" onclick="window.status = new Date().toString()">window.status = new Date().toString()</a> </body> </html>
當您測試應用程式時,CustomHost 類別會處理 HTML 頁面中與使用者介面相關的 JavaScript 設定。
Tue Jun 12 2018, 03:47 PM Z