flash.system 패키지에는 SWF 파일과 컨테이너의 통신을 지원하는 패키지 레벨 함수인
fscommand()
가 들어 있습니다.함수 | 정의 주체 | ||
---|---|---|---|
SWF 파일이 Flash Player나 웹 브라우저 같이 Flash Player를 호스팅하는 프로그램과 통신할 수 있도록 합니다. | flash.system |
fscommand | () | 함수 |
public function fscommand(command:String, args:String = ""):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
SWF 파일이 Flash Player나 웹 브라우저 같이 Flash Player를 호스팅하는 프로그램과 통신할 수 있도록 합니다. fscommand()
함수를 사용하여 Director, Visual Basic, Visual C++ 및 ActiveX 컨트롤을 호스팅할 수 있는 기타 프로그램에 메시지를 전달할 수도 있습니다.
SWF 파일에서는 fscommand()
함수를 통해 웹 페이지에 포함된 스크립트와 통신할 수 있습니다. 그러나 스크립트 액세스는 웹 페이지의 allowScriptAccess
설정으로 제어됩니다. 이 특성은 SWF 파일이 포함된 HTML 코드(예: Internet Explorer의 경우 PARAM
태그, Netscape의 경우 EMBED
태그)에서 설정합니다.
-
allowScriptAccess
가 기본값인"sameDomain"
으로 설정되어 있는 경우에는 웹 페이지와 같은 도메인에 있는 SWF 파일에서만 스크립팅이 허용됩니다. -
allowScriptAccess
를"always"
로 설정하면 HTML 페이지와 다른 도메인에 있는 SWF 파일도 HTML 페이지와 통신할 수 있습니다. allowScriptAccess
를"never"
로 설정하면 SWF 파일에서 어떠한 HTML 페이지와도 통신할 수 없습니다. 이 값은 더 이상 사용하지 않는 것이 좋으며, 자체 도메인에서 신뢰할 수 없는 SWF 파일을 제공하지 않는 한 이 값은 필요하지 않습니다. 신뢰할 수 없는 SWF 파일을 불가피하게 제공해야 하는 경우 신뢰할 수 없는 모든 내용을 배치할 별도의 하위 도메인을 만드는 것이 좋습니다.
SWF 내용이 들어 있는 HTML 페이지에서 allowNetworking
매개 변수(object
및 embed
태그)를 설정하여 SWF 파일에서 이 메서드를 사용하지 않게 할 수 있습니다.
호출하는 SWF 파일이 local-with-file-system 또는 local-with-network 샌드박스에 있고 포함하는 HTML 페이지가 신뢰되지 않은 샌드박스에 있으면 fscommand()
함수를 사용할 수 없습니다.
보안에 대한 자세한 내용은 Flash Player 개발자 센터 항목: 보안을 참조하십시오.
구문 1: fscommand()
를 사용하여 Flash Player에 메시지를 보내려면 미리 정의된 명령과 매개 변수를 사용해야 합니다. 다음 표에서는 fscommand()
함수의 command
및 args
매개 변수에 지정할 수 있는 값을 보여 줍니다. 이러한 값은 프로젝터와 같이 Flash Player에서 재생되는 SWF 파일을 제어합니다. 프로젝터는 Flash Player 없이 독립 실행형 응용 프로그램으로 실행할 수 있는 형식으로 저장된 SWF 파일입니다.
명령 | 매개 변수(인수) | 용도 |
---|---|---|
quit | 없음 | 프로젝터를 닫습니다. |
fullscreen | true 또는 false | true 로 지정하면 Flash Player가 전체 화면 모드로 설정됩니다. false 로 지정하면 플레이어가 일반 메뉴 보기로 전환됩니다. |
allowscale | true 또는 false | false 로 지정하면 플레이어에서 SWF 파일이 항상 원래 크기로 그려지고 크기를 조절할 수 없도록 설정되며, true 로 지정하면 SWF 파일 크기가 플레이어의 100%로 조절됩니다. |
showmenu | true 또는 false | true 로 지정하면 전체 컨텍스트 메뉴 항목을 사용할 수 있습니다. false 로 지정하면 설정 및 Flash Player 정보를 제외한 모든 컨텍스트 메뉴 항목을 숨깁니다. |
exec | 응용 프로그램에 대한 경로 | 프로젝터에서 응용 프로그램을 실행합니다. |
trapallkeys | true 또는 false | true 로 지정하면 액셀러레이터 키를 포함한 모든 키 이벤트를 Flash Player의 onClipEvent(keyDown/keyUp) 핸들러로 보냅니다. |
표에 나열된 모든 명령을 모든 응용 프로그램에서 사용할 수 있는 것은 아닙니다.
- 웹 플레이어에서는 이러한 명령을 하나도 사용할 수 없습니다.
- 모든 명령은 독립 실행형 프로젝터 응용 프로그램에서 사용할 수 있습니다.
- AIR 응용 프로그램은 비슷한 함수에 대해 flash.desktop.NativeApplication 클래스를 사용해야 합니다. 예를 들어
NativeApplication.nativeApplication.exit()
를fscommand("quit")
대신 사용해야 합니다. - 동영상 테스트 플레이어에서는
allowscale
과exec
만 사용할 수 있습니다.
exec
명령에는 A-Z, a-z, 0-9, 마침표(.) 및 밑줄(_)만 사용할 수 있습니다. exec
명령은 하위 디렉토리 fscommand에서만 실행됩니다. 즉, exec
명령을 사용하여 응용 프로그램을 호출하려면 응용 프로그램이 fscommand라는 하위 디렉토리에 있어야 합니다. exec
명령은 Flash 프로젝터 파일 내에서만 작동합니다.
구문 2: 웹 브라우저에서 fscommand()
를 사용하여 JavaScript와 같은 스크립팅 언어에 메시지를 전송하려면 command
및 args
매개 변수로 두 매개 변수를 전달하면 됩니다. 이 두 매개 변수는 문자열이나 표현식일 수 있으며 fscommand()
함수를 포착하거나 처리하는 JavaScript 함수에 사용됩니다.
웹 브라우저에서 fscommand()
는 SWF 파일이 포함된 웹 페이지에 있는 JavaScript 함수 moviename_DoFScommand
를 호출합니다. moviename
에는 EMBED
태그의 NAME
특성에 사용한 Flash 객체 이름이나 OBJECT
태그의 ID 속성을 제공합니다. SWF 파일에 "myMovie"라는 이름을 지정하면 JavaScript 함수 myMovie_DoFScommand
가 호출됩니다.
위에서 설명한 것처럼 SWF 파일이 포함된 웹 페이지에서 allowScriptAccess
특성을 설정하여 SWF 파일이 웹 페이지에 액세스하도록 허용하거나 거부할 수 있습니다. 이 특성은 SWF 파일이 포함된 HTML 코드(예: Internet Explorer의 경우 PARAM
태그, Netscape의 경우 EMBED
태그)에서 설정합니다.
브라우저에서 실행되는 Flash Player 10 이상에서는 프로그래밍 방식으로 이 메서드를 사용하여 팝업 윈도우를 열지 못할 수도 있습니다. 브라우저 및 브라우저 구성에 따라 팝업 윈도우가 차단될 수 있으므로 팝업 윈도우가 나타나는 것을 보장할 수 없습니다. 하지만 마우스 클릭이나 키 누르기 이벤트에 대한 이벤트 핸들러 등 사용자 액션의 직접적인 결과로 실행되는 코드에서 이 메서드를 사용하여 팝업 윈도우를 열도록 하면 팝업 윈도우가 나타날 가능성이 높아집니다.
구문 3: fscommand()
함수는 Director(Adobe의 Macromedia Director)로 메시지를 보낼 수 있습니다. 이러한 메시지는 Lingo(Director의 스크립팅 언어)에 의해 문자열, 이벤트 또는 실행 가능한 Lingo 코드로 해석됩니다. 메시지가 문자열이거나 이벤트인 경우 fscommand()
함수가 보내는 메시지를 받아 Director에서 작업을 수행하는 Lingo 코드를 작성해야 합니다. 자세한 내용은 www.adobe.com/kr/support/director/의 Director 지원 센터에서 관련 자료를 참조하십시오.
Visual Basic, Visual C++ 및 ActiveX 컨트롤을 호스팅할 수 있는 기타 프로그램의 경우 fscommand()
는 해당 환경의 프로그래밍 언어에서 처리될 수 있는 두 문자열과 함께 VB 이벤트를 보냅니다. 자세한 내용은 www.adobe.com/kr/support/flash/에서 "Flash method" 키워드를 사용하여 Flash 지원 센터를 검색해 보십시오.
참고: ExternalInterface 클래스를 사용하면 JavaScript와 ActionScript 사이(구문 2) 및 ActionScript와 VisualBasic, Visual C++ 또는 ActiveX 컨트롤을 호스팅할 수 있는 기타 프로그램 사이(구문 4)의 통신 기능이 향상됩니다. Flash Player(구문 1) 및 Director(구문 3)에 메시지를 보낼 때는 fscommand()
를 계속 사용해야 합니다.
매개 변수
command:String — 여러 용도로 호스트 응용 프로그램에 전달되는 문자열이거나 Flash Player에 전달되는 명령입니다.
| |
args:String (default = " ") — 여러 용도로 호스트 응용 프로그램에 전달되는 문자열이거나 Flash Player에 전달되는 값입니다.
|
오류
Error — 함수가 마우스 클릭이나 키 누르기 이벤트와 같은 사용자 액션에 대한 응답으로 호출되지 않는 경우.
|
관련 API 요소
예제 ( 예제 사용 방법 )
fscommand()
를 사용하여 Flash Player를 전체 화면 모드로 설정하고 크기를 조절할 수 없게 하는 방법을 보여 줍니다. 주황색 상자가 draw()
를 통해 스테이지에 추가됩니다. draw()
에서 clickHandler()
라는 click
이벤트 리스너가 추가되며 이 리스너에서는 click
이벤트에 응답하여 Flash Player를 종료하기 위해 fscommand()
를 한 번 더 호출합니다.
참고: 이 예제는 웹 브라우저가 아닌 독립 실행형 Flash Player에서 실행해야 합니다.
package { import flash.display.Sprite; import flash.text.TextField; import flash.system.fscommand; import flash.events.MouseEvent; public class FSCommandExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 100; public function FSCommandExample() { fscommand("fullscreen", "true"); fscommand("allowscale", "false"); draw(); } private function clickHandler(event:MouseEvent):void { fscommand("quit"); trace("clickHandler"); } private function draw():void { var child:Sprite = new Sprite(); child.graphics.beginFill(bgColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); child.buttonMode = true; addEventListener(MouseEvent.CLICK, clickHandler); var label:TextField = new TextField(); label.text = "quit"; label.selectable = false; label.mouseEnabled = false; child.addChild(label); addChild(child); } } }
Tue Jun 12 2018, 03:33 PM Z