| 套件 | 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
隱藏繼承公用屬性
顯示繼承公用屬性