=================================
=================================
=================================
플래시에는 Stage라고 하는 플레이어 가장 바깥에 감쌓여 있는 계층이 있다.
바로 이곳이 마우스 커서와 제일 먼저 닿는 부분이기도 하고 플레이어의 view패널 영역 전부를 차지하고 있는 유일무이한 영역이자 객체입니다.
그리고 SWF당 한개의 Stage가 주어지고 이를 통하여 작업한 객체를 addChild하거나 속성 등을 제어할 수 있습니다. (아래의 스테이지 보안 참고)
[ 속성 : 도움말 참조 ]
align : String
Flash Player 또는 브라우저에서 스테이지 정렬을 지정하는 StageAlign 클래스 값입니다.
값 | 세로 정렬 | 가로 쓰기 |
---|---|---|
|
위쪽 | 중앙 |
|
아래쪽 | 중앙 |
|
중앙 | 왼쪽 |
|
중앙 | 오른쪽 |
|
위쪽 | 왼쪽 |
|
위쪽 | 오른쪽 |
|
아래쪽 | 왼쪽 |
|
아래쪽 | 오른쪽 |
displayState : String
사용할 표시 상태를 지정하는 StageDisplayState 클래스의 값입니다. Stage
DisplayState.FULL_SCREEN : 플레이어 전체 화면에 걸쳐 Stage를 확장하도록 설정Stage
DisplayState.NORMAL : 플레이어를 표준 Stage 표시 모드로 되돌리도록 설정
focus : InteractiveObject
키보드 포커스가 있는 대화형 객체입니다. 포커스가 설정되어 있지 않거나 포커스 객체가 호출하는 객체에서 액세스할 수 없는 보안 샌드박스에 속한 경우에는 null입니다.
stage.focus = 대상입력텍스트필드
frameRate : Number
스테이지의 프레임 속도를 확인하고 설정합니다.
stage.frameRate = 60
height : Number
표시 객체의 높이를 픽셀 단위로 나타냅니다.
단 값의 입력은 불가능 하고 값의 참조만 가능하다.
width : Number
표시 객체의 폭을 픽셀 단위로 나타냅니다.
* 위의 크기에 관련된 값은 무비의 크기가 아닌 무비에서 객체들이 있을 때 그 객체들의 폭의 합과 높이의 합이 반환된다. 가령 폭 500인 무비에 아무 객체도 없다면 stage.width는 0을 반환하고 폭이 100인 객체가 화면에 한개 있다면 stage.width는 100을 반환한다.
mouseChildren : Boolean
해당 객체의 자식에서 마우스 기능을 사용할 수 있는지 여부를 결정합니다.
복잡한 구조안에서 버튼이 중복되거나 마우스 사용 중지하고자 할 때 유용하다.
객체.mouseChildren = false 하면 해당 객체에 포함된 모든 계층의 마우스가 비활성화된다.
numChildren : int
[read-only]
해당 객체에 addChild()/addChildAt()등으로 붙어있는 자식 수를 반환합니다.
quality : String
Flash Player에서 사용할 렌더링 품질을 지정하는 StageQuality 클래스 값입니다.
: 낮은 렌더링 품질입니다. Stage
Quality.LOW
그래픽이 앤티앨리어싱되지 않고 비트맵이 다듬어지지 않습니다.
: 중간 렌더링 품질입니다. Stage
Quality.MEDIUM
2 x 2 픽셀 격자를 사용하여 그래픽이 앤티앨리어싱되고 비트맵이 매끄럽게 다듬어지지 않습니다.
이 설정은 텍스트가 포함되지 않은 무비에 적합합니다.
: 높은 렌더링 품질입니다. Stage
Quality.HIGH
4 x 4 픽셀 격자를 사용하여 그래픽이 앤티앨리어싱되고 무비가 정적일 때 비트맵이 매끄럽게 다듬어집니다. Flash Player에서 사용하는 기본 렌더링 품질 설정입니다.
: 가장 높은 렌더링 품질입니다. Stage
Quality.BEST
4 x 4픽셀 격자를 사용하여 그래픽이 앤티앨리어싱되고 비트맵은 항상 매끄럽게 처리됩니다.
scaleMode : String
사용할 크기 조절 모드를 지정하는 StageScaleMode 클래스 값입니다.
: 응용 프로그램의 원래 종횡비를 유지하면서 왜곡 없이 전체 Flash 응용 프로그램을 지정된 영역에 표시합니다. 응용 프로그램의 두 면에 테두리가 표시될 수 있습니다.
ScaleMode.EXACT_FIT
Stage
: 원래 종횡비를 유지하지 않고 전체 Flash 응용 프로그램을 지정된 영역에 표시합니다. 내용이 찌그러질 수 있습니다.Stage
ScaleMode.SHOW_ALL
: 응용 프로그램의 원래 종횡비를 유지하면서 왜곡 없이(일부는 잘릴 수 있음) 전체 Flash 응용 프로그램이 지정된 영역을 채웁니다.Stage
ScaleMode.NO_BORDER
: 플레이어 창의 크기가 변경되는 경우에도 전체 Flash 응용 프로그램이 변경되지 않고 유지되도록 고정합니다. 플레이어 윈도우가 내용보다 작으면 내용이 잘릴 수 있습니다.Stage
ScaleMode.NO_SCALE
showDefaultContextMenu : Boolean
Flash Player 컨텍스트 메뉴에서 기본 항목의 표시 또는 숨김을 지정합니다.
stageFocusRect : Boolean
포커스를 받은 객체의 경계선을 광선으로 표시할지 여부를 지정합니다.
stageHeight : int
Stage의 현재 높이를 픽셀 단위로 지정합니다.
stageWidth : int
Stage의 현재 폭을 픽셀 단위로 지정합니다.
tabChildren : Boolean
객체의 자식에서 탭 기능을 사용할 수 있는지 여부를 결정합니다.
textSnapshot : TextSnapshot
[read-only] 이 DisplayObjectContainer 인스턴스에 대한 TextSnapshot 객체를 반환합니다.
[ 스테이지 이벤트 테스트 ]
function run() {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.BOTTOM_RIGHT;
stage.frameRate = 60
stage.addEventListener(Event.ACTIVATE, activateHandler);
stage.addEventListener(Event.RESIZE, resizeHandler);
stage.addEventListener(MouseEvent.CLICK, clickHandler);
stage.addEventListener(Event.ENTER_FRAME, mouseChk)
}function activateHandler(event:Event):void {
trace("활성화된 이벤트: " + event.type);
}function resizeHandler(event:Event):void {
trace("크기 재설정 이벤트: " + event.type);
sizeinfo.text = "무비폭: " + stage.stageWidth + " 무비높이: " + stage.stageHeight;
}
function clickHandler(event:MouseEvent):void {
selectInfo.text = event.target + "를 클릭하였다";
}
function mouseChk(event:Event):void {
xinfo.text = String( stage.mouseX )
yinfo.text = String( stage.mouseY )
}
run();
이 코드는 stage객체에 이벤트를 걸어서 스테이지 활성화 될때나 크기가 변화할 때
resize이벤트등 stage에 관한 테스트입니다.
[ 참고 : 크로스 스크립팅에 대한 스테이지 보안 ]
경우에 따라서 이 Stage에 접근하려는 불려들여진 다른 SWF또는 불러온 SWF에서 불러들인 SWF의 메서드를 호출(크로스 스크립팅)하려면 Security.allowDomain()에서 보안샌드박스를 맞추어 주어야 한다.
가령 이미 Stage에 불려진 A.swf에서 B.swf를 불러들여 B의 run()이라는 메서드를 호출할 때 B.swf에는 A에 관하여
Security.allowDomain(A.swf가 있는 도메인)로 허용해야 합니다.
스테이지 보안 항목은 아래와 같다.
속성 | 메서드 | |
align |
showDefaultContextMenu |
addChild() |
displayState |
|
addChildAt() |
frameRate |
|
addEventListener() |
height |
|
dispatchEvent() |
mouseChildren |
tabChildren |
hasEventListener() |
numChildren |
textSnapshot |
setChildIndex() |
quality |
width |
willTrigger() |
scaleMode |
////////////////////////////////////////////////////////////////////////
AS3에서는 이전 버전에 이어 시스템의 정보를 읽어오는 Capabilities라는 클래스와 Stage나 Security등을 제공하고 있다. 이들 중에 시스템 환경 검사에 관련된 Capabilities클래스를 다루어보자.
이 클래스는 시스템 정보를 반환하는 여러가지 속성이 있다
[ 속성 : 도움말 참조 ]
avHardwareDisable : Boolean
[static] [read-only]
사용자의 카메라와 마이크에 대한 액세스가 금지되었는지(true) 또는 허용되었는지(false) 여부를 지정합니다.
hasAccessibility : Boolean
[static] [read-only]
플레이어가 실행되는 환경에서 액세스 가능성 도구와의 통신을 지원하는지(true) 또는 지원하지 않는지(false)를 지정합니다.
hasAudio : Boolean
[static] [read-only]
플레이어가 실행되는 시스템에 오디오 기능이 있는지 여부를 지정합니다.
hasAudioEncoder : Boolean
[static] [read-only]
플레이어에서 마이크 입력 등의 오디오 스트림을 인코딩할 수 있는지(true) 또는 인코딩할 수 없는지(false)를 지정합니다.
hasEmbeddedVideo : Boolean
[static] [read-only]
플레이어가 실행되는 시스템에서 포함된 비디오를 지원하는지(true) 또는 지원하지 않는지(false)를 지정합니다.
hasIME : Boolean
[static] [read-only]
플레이어가 실행되는 시스템에 IME가 설치되어 있는지(true) 또는 설치되어 있지 않은지(false)를 지정합니다.
hasMP3 : Boolean
[static] [read-only]
플레이어가 실행되는 시스템에 MP3 디코더가 있는지(true) 또는 없는지(false)를 지정합니다.
hasPrinting : Boolean
[static] [read-only] 플레이어가 실행되는 시스템에서 인쇄를 지원하는지(true) 또는 지원하지 않는지(false)를 지정합니다.
hasScreenBroadcast : Boolean
[static] [read-only]
플레이어에서 Flash Media Server를 통해 실행되는 스크린 브로드캐스트 응용 프로그램 개발을 지원하는지(true) 또는 지원하지 않는지(false)를 지정합니다.
hasScreenPlayback : Boolean
[static] [read-only]
플레이어에서 Flash Media Server를 통해 실행되는 스크린 브로드캐스트 응용 프로그램 재생을 지원하는지(true) 또는 지원하지 않는지(false)를 지정합니다.
hasStreamingAudio : Boolean
[static] [read-only]
플레이어에서 스트리밍 오디오를 재생할 수 있는지(true) 또는 재생할 수 없는지(false)를 지정합니다.
hasStreamingVideo : Boolean
[static] [read-only]
플레이어에서 스트리밍 비디오를 재생할 수 있는지(true) 또는 재생할 수 없는지(false)를 지정합니다.
hasTLS : Boolean
[static] [read-only]
플레이어가 실행되는 시스템에서 NetConnection을 통한 네이티브 SSL 소켓을 지원하는지(true) 또는 지원하지 않는지(false)를 지정합니다.
hasVideoEncoder : Boolean
[static] [read-only]
플레이어에서 웹 카메라 입력 등의 비디오 스트림을 인코딩할 수 있는지(true) 또는 인코딩할 수 없는지(false)를 지정합니다.
isDebugger : Boolean
[static] [read-only]
플레이어가 특수 디버깅 버전인지(true) 또는 정식으로 출시된 버전인지(false)를 지정합니다.
language : String
[static] [read-only]
플레이어가 실행되는 시스템의 언어 코드를 지정합니다.
언어 | 값 |
---|---|
체코어 | cs |
덴마크어 | da |
네덜란드어 | nl |
영어 | en |
핀란드어 | fi |
프랑스어 | fr |
독일어 | de |
헝가리어 | hu |
이탈리아어 | it |
일본어 | ja |
한국어 | ko |
노르웨이어 | no |
기타/알 수 없음 | xu |
폴란드어 | pl |
포루투갈어 | pt |
러시아어 | ru |
중국어 간체 | zh-CN |
스페인어 | es |
스웨덴어 | sv |
중국어 번체 | zh-TW |
터키어 | tr |
localFileReadDisable : Boolean
[static] [read-only]
사용자의 하드 디스크에 대한 읽기 액세스가 금지되었는지(true) 또는 허용되었는지(false)를 지정합니다.
manufacturer : String
[static] [read-only]
Flash Player의 제조자를 "Adobe OSName" 형식으로 지정합니다.
os : String
[static] [read-only]
현재 운영 체제를 지정합니다.
pixelAspectRatio : Number
[static] [read-only]
스크린의 픽셀 종횡비를 지정합니다.
playerType : String
[static] [read-only]
플레이어 유형을 지정합니다.
screenColor : String
[static] [read-only]
스크린 색상을 지정합니다.
screenDPI : Number
[static] [read-only]
스크린의 dpi(인치당 도트 수) 해상도를 픽셀 단위로 지정합니다.
screenResolutionX : Number
[static] [read-only]
스크린의 최대 수평 해상도를 지정합니다.
screenResolutionY : Number
[static] [read-only]
스크린의 최대 수직 해상도를 지정합니다.
serverString : String
[static] [read-only]
각 Capabilities 속성의 값을 지정하는 URL 인코딩 문자열입니다.
version : String
[static] [read-only]
Flash Player 플랫폼 및 버전 정보를 지정합니다.
다음은 trace()
를 몇 차례 호출하여 flash.system.Capabilities 객체에 있는 값을 출력합니다.
package {
import flash.display.Sprite;
import flash.system.Capabilities;
public class CapabilitiesExample extends Sprite {
public function CapabilitiesExample() {
showCapabilities();
}
private function showCapabilities():void
{
trace("avHardwareDisable: " + Capabilities.avHardwareDisable);
trace("hasAccessibility: " + Capabilities.hasAccessibility);
trace("hasAudio: " + Capabilities.hasAudio);
trace("hasAudioEncoder: " + Capabilities.hasAudioEncoder);
trace("hasEmbeddedVideo: " + Capabilities.hasEmbeddedVideo);
trace("hasMP3: " + Capabilities.hasMP3);
trace("hasPrinting: " + Capabilities.hasPrinting);
trace("hasScreenBroadcast: " + Capabilities.hasScreenBroadcast);
trace("hasScreenPlayback: " + Capabilities.hasScreenPlayback);
trace("hasStreamingAudio: " + Capabilities.hasStreamingAudio);
trace("hasVideoEncoder: " + Capabilities.hasVideoEncoder);
trace("isDebugger: " + Capabilities.isDebugger);
trace("language: " + Capabilities.language);
trace("localFileReadDisable: " + Capabilities.localFileReadDisable);
trace("manufacturer: " + Capabilities.manufacturer);
trace("os: " + Capabilities.os);
trace("pixelAspectRatio: " + Capabilities.pixelAspectRatio);
trace("playerType: " + Capabilities.playerType);
trace("screenColor: " + Capabilities.screenColor);
trace("screenDPI: " + Capabilities.screenDPI);
trace("screenResolutionX: " + Capabilities.screenResolutionX);
trace("screenResolutionY: " + Capabilities.screenResolutionY);
trace("serverString: " + Capabilities.serverString);
trace("version: " + Capabilities.version);
}
}
}
=================================
=================================
=================================
'ADOBE > ActionScript' 카테고리의 다른 글
[as3.0] 비트맵(Bitmap)이미지, 이미지 로드관련 (0) | 2012.01.04 |
---|---|
[AS] 삼성 스마트티비 sdk(2.5, 3.0) AS3.0 (액션스크립트 3.0) 되도록 하기 (0) | 2011.12.23 |
플래시 AS3.0, RESIZE 이벤트를 이용한 화면사이즈 조정 관련 (0) | 2011.12.13 |
플래시 fl.controls.TileList 관련, 리스트안에 컨트롤 (0) | 2011.12.09 |
플래시 fl 컨트롤 컨포넌트 (0) | 2011.11.29 |