패키지 | flash.media |
클래스 | public final class StageWebView |
상속 | StageWebView EventDispatcher Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
StageWebView 클래스는 HTMLLoader 클래스가 지원되지 않는 장치에서 HTML 내용을 표시할 수 있는 간단한 방법을 제공합니다. 이 클래스는 StageWebView 클래스 자체의 메서드 및 속성을 통하는 경우를 제외하고는 ActionScript와 HTML 내용 간에 상호 작용을 제공하지 않습니다. 예를 들어 ActionScript와 JavaScript 간에 값을 전달하거나 함수를 호출할 방법이 없습니다.
AIR 프로파일 지원: 이 기능은 모든 데스크톱 운영 체제 및 모바일 장치에서 지원되지만 AIR for TV 장치에서는 지원되지 않습니다. StageWebView.isSupported
속성을 사용하여 런타임에 지원을 테스트할 수 있습니다. 여러 프로파일 간 API 지원에 대한 자세한 내용은 AIR 프로파일 지원을 참조하십시오.
모바일 및 확장 모바일 프로파일에 있는 장치에서 StageWebView 클래스는 장치 운영 체제에 의해 제공되는 시스템 웹 컨트롤을 사용합니다. 따라서 사용 가능한 기능 및 렌더링 모양이 장치마다 다를 수 있습니다.
Android에서 인라인 HTML5 비디오는 <application android:hardwareAccelerated="true"/>
가 응용 프로그램 설명자에 포함된 경우에만 지원됩니다.
데스크톱 컴퓨터(데스크톱 및 확장 데스크톱 프로파일 내)에서 StageWebView 클래스는 Flash Player 플러그인이 제공하는 시스템 웹 컨트롤을 사용합니다. 사용 가능한 기능 및 렌더링 모양은 HTMLLoader 클래스와 동일합니다(HTMLLoader 인스턴스에서 제공하는 ActionScript 및 JavaScript 간의 긴밀한 통합 및 스크립트 브리징은 제외). HTMLLoader 클래스는 내부 AIR WebKit 엔진을 사용하므로 StageWebView 인스턴스와 HTMLLoader 인스턴스를 동시에 사용하는 것은 좋지 않습니다. 정의되지 않은 비헤이비어가 발생하고 응용 프로그램이 종료될 수도 있기 때문입니다.
StageWebView 클래스는 표시 객체가 아니며 Flash 표시 목록에 추가될 수 없습니다. 대신 stage
속성을 사용하여 스테이지에 직접 연결함으로써 StageWebView 객체를 표시합니다. 스테이지에 연결된 StageWebView 인스턴스는 Flash 표시 객체 위에 표시됩니다. viewPort
속성을 사용하여 렌더링 영역의 크기 및 위치를 제어합니다. 서로 다른 StageWebView 객체의 심도 순서를 제어할 수 있는 방법은 없습니다. 두 인스턴스를 겹치는 것은 바람직하지 않습니다.
StageWebView 객체 내의 내용에 포커스가 있으면 StageWebView 객체는 처음으로 키보드 입력을 처리할 수 있게 됩니다. StageWebView 객체가 연결된 스테이지는 처리되지 않은 키보드 입력을 전달합니다. StageWebView 인스턴스는 표시 목록에 포함되지 않기 때문에 정상적인 이벤트 캡처/버블링 주기가 적용되지 않습니다.
Android 3.0 이상에서는 StageWebView 객체에 플러그인 내용을 표시하기 위해 AIR 응용 프로그램 설명자의 Android manifestAdditions 요소에서 하드웨어 가속을 활성화해야 합니다.
추가 정보
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
isHistoryBackEnabled : Boolean [읽기 전용]
탐색 내역에 이전 페이지가 있는지 여부를 보고합니다. | StageWebView | ||
isHistoryForwardEnabled : Boolean [읽기 전용]
탐색 내역에 다음 페이지가 있는지 여부를 보고합니다. | StageWebView | ||
isSupported : Boolean [정적] [읽기 전용]
현재 장치에서 StageWebView 클래스가 지원되는지 여부를 보고합니다. | StageWebView | ||
location : String [읽기 전용]
현재 위치의 URL입니다. | StageWebView | ||
mediaPlaybackRequiresUserAction : Boolean
미디어 내용을 재생하기 위해 사용자가 동작을 수행해야 하는지 여부를 설정합니다. | StageWebView | ||
stage : Stage
이 StageWebView 객체가 표시되는 스테이지입니다. | StageWebView | ||
title : String [읽기 전용]
HTML 제목 값입니다. | StageWebView | ||
viewPort : Rectangle
StageWebView 객체가 표시되는 스테이지의 영역입니다. | StageWebView |
메서드 | 정의 주체 | ||
---|---|---|---|
StageWebView 객체를 만듭니다. | StageWebView | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. | EventDispatcher | ||
이 StageWebView 객체 내의 내용에 포커스를 할당합니다. | StageWebView | ||
이벤트를 이벤트 흐름으로 전달합니다. | EventDispatcher | ||
이 StageWebView 인스턴스를 지웁니다. | StageWebView | ||
비트맵에 StageWebView의 뷰포트를 그립니다. | StageWebView | ||
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
탐색 내역에서 이전 페이지로 이동합니다. | StageWebView | ||
탐색 내역에서 다음 페이지로 이동합니다. | StageWebView | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
지정된 HTML 문자열을 로드하고 표시합니다. | StageWebView | ||
지정된 URL의 페이지를 로드합니다. | StageWebView | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
현재 페이지를 다시 로드합니다. | StageWebView | ||
EventDispatcher 객체에서 리스너를 제거합니다. | EventDispatcher | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
현재 로드 작업을 중단합니다. | StageWebView | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object | ||
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher |
이벤트 | 요약 | 정의 주체 | ||
---|---|---|---|---|
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | |||
loadString() 또는 loadURL() 메서드에서 요청한 마지막 로드 작업이 완료되었음을 알립니다. | StageWebView | |||
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | |||
오류가 발생했음을 알립니다. | StageWebView | |||
이 StageWebView 객체가 포커스를 받을 때 전달됩니다. | StageWebView | |||
StageWebView가 포커스를 반환할 때 전달됩니다. | StageWebView | |||
StageWebView 객체의 location 속성이 변경되었음을 알립니다. | StageWebView | |||
StageWebView 객체의 location 속성이 곧 변경됨을 알립니다. | StageWebView |
isHistoryBackEnabled | 속성 |
isHistoryForwardEnabled | 속성 |
isSupported | 속성 |
location | 속성 |
mediaPlaybackRequiresUserAction | 속성 |
mediaPlaybackRequiresUserAction:Boolean
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 21.0 |
미디어 내용을 재생하기 위해 사용자가 동작을 수행해야 하는지 여부를 설정합니다. iOS의 경우에는 이 속성이 적용되지 않으며 미디어 자동 재생은 생성자 StageWebView()
를 통해서만 수행할 수 있습니다. 기본값은 True입니다.
구현
public function get mediaPlaybackRequiresUserAction():Boolean
public function set mediaPlaybackRequiresUserAction(value:Boolean):void
stage | 속성 |
title | 속성 |
viewPort | 속성 |
viewPort:Rectangle
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
StageWebView 객체가 표시되는 스테이지의 영역입니다.
구현
public function get viewPort():Rectangle
public function set viewPort(value:Rectangle):void
오류
RangeError — Rectangle 값이 잘못되었습니다.
|
StageWebView | () | 생성자 |
public function StageWebView(useNative:Boolean = false, mediaPlaybackRequiresUserAction:Boolean = true)
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
StageWebView 객체를 만듭니다.
객체는 스테이지에 연결되고 viewPort
가 설정되기 전에 보이지 않습니다.
참고: 금지 사항은 아니지만, 일부 내용의 경우 동일한 프로세스가 포함된 WebKit과 시스템 WebKit을 모두 사용하는 경우 오류가 발생할 수 있습니다. 따라서 특정 응용 프로그램의 모든 StageWebView를 동일한 useNative 값을 사용하여 생성하는 것이 좋습니다. 또한 HTMLLoader는 포함된 WebKit에 종속되므로 HTMLLoader를 사용하는 응용 프로그램은 useNative가 false로 설정된 StageWebView만 생성해야 합니다.
매개 변수useNative:Boolean (default = false ) — useNative가 false인 경우 AIR 내에 포함된 WebKit의 버전이 생성된 StageWebView의 소스로 사용됩니다. useNative가 true인 경우에는 AIR에서 시스템의 기본 웹 엔진을 사용합니다. 모바일 플랫폼은 시스템 웹 엔진을 사용해서만 지원하므로 모바일 플랫폼에서는 useNative가 무시됩니다.
| |
mediaPlaybackRequiresUserAction:Boolean (default = true ) — 기본값은 true입니다. mediaPlaybackRequiresUserAction이 true이면 WebView에서 사용자 동작을 재생해야 합니다. false인 경우 WebView 컨텐츠가 자동으로 재생됩니다.
|
assignFocus | () | 메서드 |
public function assignFocus(direction:String = "none"):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
이 StageWebView 객체 내의 내용에 포커스를 할당합니다.
방향 값은 FocusDirection 클래스에서 정의되며 "bottom", "none" 및 "top"을 포함합니다.
매개 변수
direction:String (default = "none ") — 표시된 내용에서 포커스를 받을 수 있는 첫 번째 객체와 마지막 객체 중 어떤 객체가 포커스를 받아야 하는지를 지정합니다.
|
관련 API 요소
dispose | () | 메서드 |
public function dispose():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
이 StageWebView 인스턴스를 지웁니다.
dispose()
호출은 선택 사항입니다. 이 StageWebView 인스턴스에 대한 참조를 유지하지 않는 경우에는 가비지 수집의 대상이 됩니다. dispose()
를 호출하면 가비지 수집을 보다 일찍 또는 더 편리한 시간에 수행할 수 있습니다.
drawViewPortToBitmapData | () | 메서드 |
public function drawViewPortToBitmapData(bitmap:BitmapData):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.6 |
비트맵에 StageWebView의 뷰포트를 그립니다.
StageWebView 객체 위에 내용을 표시하기 위해 비트맵을 캡처하고 스테이지를 null
로 설정합니다.
참고: 포함된 PDF 및 SWF 파일 같은 플러그인 내용이 들어 있는 페이지에 대해서는 이 메서드의 비헤이비어가 보장되지 않습니다.
매개 변수
bitmap:BitmapData — StageWebView 뷰포트의 보이는 부분을 그릴 BitmapData 객체입니다.
|
오류
ArgumentError — 비트맵의 폭 또는 높이가 뷰포트의 폭 또는 높이와 다릅니다.
| |
Error — 비트맵이 null입니다.
|
예제 ( 예제 사용 방법 )
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.events.*; import flash.geom.Rectangle; import flash.media.StageWebView; import flash.net.*; import flash.text.TextField; public class stagewebview1 extends Sprite { public var webView:StageWebView = new StageWebView(); public var textGoogle:TextField=new TextField(); public var textFacebook:TextField=new TextField(); public function stagewebview() { textGoogle.htmlText="<b>Google</b>"; textGoogle.x=300; textGoogle.y=-80; addChild(textGoogle); textFacebook.htmlText="<b>Facebook</b>"; textFacebook.x=0; textFacebook.y=-80; addChild(textFacebook); textGoogle.addEventListener(MouseEvent.CLICK,goGoogle); textFacebook.addEventListener(MouseEvent.CLICK,goFaceBook); webView.stage = this.stage; webView.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight); } public function goGoogle(e:Event):void { webView.loadURL("http://www.google.com"); webView.stage = null; webView.addEventListener(Event.COMPLETE,handleLoad); } public function goFaceBook(e:Event):void { webView.loadURL("http://www.facebook.com"); webView.stage = null; webView.addEventListener(Event.COMPLETE,handleLoad); } public function handleLoad(e:Event):void { var bitmapData:BitmapData = new BitmapData(webView.viewPort.width, webView.viewPort.height); webView.drawViewPortToBitmapData(bitmapData); var webViewBitmap:Bitmap=new Bitmap(bitmapData); addChild(webViewBitmap); } } }
historyBack | () | 메서드 |
historyForward | () | 메서드 |
loadString | () | 메서드 |
public function loadString(text:String, mimeType:String = "text/html"):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
지정된 HTML 문자열을 로드하고 표시합니다.
loadString()
메서드가 사용될 때 location
은 "about:blank"로 보고됩니다. HTML 문자열 내의 URL에서는 표준 URI 스킴만 사용될 수 있습니다. AIR URI 스킴, "app:" 및 "app-storage:"는 허용되지 않습니다.
HTML 내용은 이미지 파일 등의 로컬 리소스를 로드할 수 없습니다. XMLHttpRequests는 허용되지 않습니다.
"text/html" 및 "application/xhtml+xml" MIME 유형만 지원됩니다.
매개 변수
text:String — 표시할 HTML 또는 XHTML 내용의 문자열입니다.
| |
mimeType:String (default = "text/html ") — 내용의 MIME 유형으로서, "text/html" 또는 "application/xhtml+xml"입니다.
|
예제 ( 예제 사용 방법 )
loadString()
메서드를 사용하여 HTML 페이지를 로드합니다.
var webView:StageWebView = new StageWebView(); webView.stage = this.stage; webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight ); var htmlString:String = "<!DOCTYPE HTML>" + "<html>" + "<body>" + "<h1>Example</h1>" + "<p>King Phillip cut open five green snakes.</p>" + "</body>" + "</html>"; webView.loadString( htmlString, "text/html" );
loadURL | () | 메서드 |
public function loadURL(url:String):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
지정된 URL의 페이지를 로드합니다.
이 URL은 http:, https:, file:, data: 및 javascript:의 URI 스킴을 사용할 수 있습니다. file: 스킴으로 로드된 내용은 다른 로컬 리소스를 로드할 수 있습니다.
매개 변수
url:String |
예제 ( 예제 사용 방법 )
loadURL()
메서드를 사용하여 웹 사이트를 로드합니다.
참고: Android에서는 AIR 응용 프로그램 설명자에서 INTERNET 권한을 지정해야 원격 URL을 로드할 수 있습니다.
var webView:StageWebView = new StageWebView(); webView.stage = this.stage; webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight ); webView.loadURL( "http://www.example.com" );
reload | () | 메서드 |
stop | () | 메서드 |
complete | 이벤트 |
flash.events.Event
속성 Event.type =
flash.events.Event.COMPLETE
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
loadString()
또는 loadURL()
메서드에서 요청한 마지막 로드 작업이 완료되었음을 알립니다.
Event.COMPLETE
상수는 complete
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 로드가 완료된 네트워크 객체입니다. |
error | 이벤트 |
focusIn | 이벤트 |
flash.events.FocusEvent
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
이 StageWebView 객체가 포커스를 받을 때 전달됩니다.
focusOut | 이벤트 |
flash.events.FocusEvent
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
StageWebView가 포커스를 반환할 때 전달됩니다.
locationChange | 이벤트 |
flash.events.LocationChangeEvent
속성 LocationChangeEvent.type =
flash.events.LocationChangeEvent.LOCATION_CHANGE
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
StageWebView 객체의 location
속성이 변경되었음을 알립니다.
이벤트를 취소할 수 없습니다.
모든 위치 변경 이후에 전달됩니다. locationChanging | 이벤트 |
flash.events.LocationChangeEvent
속성 LocationChangeEvent.type =
flash.events.LocationChangeEvent.LOCATION_CHANGING
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
StageWebView 객체의 location
속성이 곧 변경됨을 알립니다.
locationChanging 이벤트는 사용자가 링크를 클릭할 때와 같이 StageWebView 객체 내에서 실행되는 HTML 내용 또는 코드를 통해 위치 변경이 시작될 때만 전달됩니다. 기본적으로 새 위치는 이 StageWebView 객체에 표시됩니다. 이벤트 객체의 preventDefault()
메서드를 호출하여 기본 비헤이비어를 취소할 수 있습니다. 예를 들어 flash.net.navigateToURL()
함수를 사용하여 이벤트 객체의 location
속성을 기준으로 시스템 브라우저에서 페이지를 열 수 있습니다.
다음 메서드를 사용하여 위치를 변경할 때는 locationChanging 이벤트가 전달되지 않습니다.
historyBack()
historyForward()
loadString()
loadURL()
reload()
LOCATION_CHANGING
상수는 페이지 위치가 변경되기 전에 전달된 LocationChangeEvent 객체의 type
속성 값을 정의합니다.
loadURL()
메서드를 사용하여 웹 사이트를 로드하고 장치의 [뒤로] 및 [검색] 소프트키를 사용하여 내역을 탐색합니다.
package { import flash.display.MovieClip; import flash.media.StageWebView; import flash.geom.Rectangle; import flash.events.KeyboardEvent; import flash.ui.Keyboard; import flash.desktop.NativeApplication; public class StageWebViewExample extends MovieClip{ private var webView:StageWebView = new StageWebView(); public function StageWebViewExample() { webView.stage = this.stage; webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight ); webView.loadURL( "http://www.example.com" ); stage.addEventListener( KeyboardEvent.KEY_DOWN, onKey ); } private function onKey( event:KeyboardEvent ):void { if( event.keyCode == Keyboard.BACK && webView.isHistoryBackEnabled ) { trace("Back."); webView.historyBack(); event.preventDefault(); } if( event.keyCode == Keyboard.SEARCH && webView.isHistoryForwardEnabled ) { trace("Forward."); webView.historyForward(); } } } }
Tue Jun 12 2018, 03:17 PM Z