flash.system 패키지에는, SWF 파일과 그 컨테이너간의 통신을 실시하는 패키지 레벨의 함수 fscommand() 가 포함됩니다.
Public
 함수정의
  fscommand (command:String , args:String = ""):void
SWF 파일이, Flash Player 또는 Flash Player 의 호스트 프로그램 (Web 브라우저등)과 통신할 수 있게 됩니다.
flash.system
함수의 상세
fscommand()함수
public function fscommand(command:String , args:String = ""):void

SWF 파일이, Flash Player 또는 Flash Player 의 호스트 프로그램 (Web 브라우저등)과 통신할 수 있게 됩니다. fscommand() 함수를 사용해, Director, 또는 ActiveX 컨트롤에 대응하고 있는 Visual Basic 나 Visual C++ 등의 프로그램에 메세지를 건네줄 수도 있습니다.

fscommand() 함수를 사용하면, SWF 파일이 Web 페이지내의 스크립트와 통신할 수 있게 됩니다. 다만, 스크립트에의 액세스는, Web 페이지의 allowScriptAccess 속성의 설정에 의해 제어됩니다. 이 속성은, SWF 파일이 들어가 있는 HTML 코드내에서 설정합니다. 예를 들어, Internet Explorer 의 PARAM 태그내나, Netscape 의 EMBED 태그내에서 설정합니다. allowScriptAccess"never" 로 설정되어 있으면, SWF 파일은 Web 페이지 스크립트에 액세스 할 수 없습니다. Flash Player 7 이후에서는,allowScriptAccess"always" 로 설정되어 있으면, SWF 파일은 Web 페이지 스크립트에 항상 액세스 할 수 있습니다. allowScriptAccess"sameDomain" 로 설정되어 있으면, Web 페이지와 같은 도메인에 존재하는 SWF 파일로부터의 스크립트 실행만이 허가됩니다. 이전의 버젼의 Flash Player 에서는, 스크립트의 실행이 항상 허가되고 있었습니다. HTML 페이지로 allowScriptAccess 가 지정되어 있지 않은 경우, 이 속성의 디폴트치는, 버젼 8 이후의 SWF 파일에서는 "sameDomain" 가 되어, 버젼 7 이전의 SWF 파일에서는 "always" 가 됩니다.

문장구조법 1:fscommand() 를 사용해 Flash Player 에 메세지를 보내려면 , 정의 끝난 커멘드와 Parameters를 사용합니다. 다음의 겉(표)에,fscommand() 함수의 command Parameters와 args Parameters로 지정할 수 있는 값을 나타냅니다. 이러한 값은, 프로젝터를 포함해 Flash Player 로 재생하는 SWF 파일을 제어합니다. 프로젝터는, Flash Player 가 없어도 standalone 어플리케이션으로서 실행 가능한 형식에서 보존되는 SWF 파일입니다.

커멘드 Parameters (args) 용도
quit 없음 프로젝터를 종료합니다.
fullscreen true 또는 false true 를 지정하면, Flash Player 는 풀 스크린 모드로 설정됩니다. false 를 지정하면, 플레이어는 노마르메뉴뷰가 됩니다.
allowscale true 또는 false false 를 지정하면, SWF 파일은 항상 원의 크기로 표시되어 확대·축소되지 않게 플레이어가 설정됩니다. true 를 지정하면, SWF 파일은 강제적으로 플레이어의 윈도우 크기에 대해서 100 %에 확대·축소됩니다.
showmenu true 또는 false true 를 지정하면, 모든 context menu 아이템이 유효하게 됩니다. false 를 지정하면,[설정] 및 [Flash Player 에 대해] 이외의 모든 context menu 항목이 비표시가 됩니다.
exec 어플리케이션에의 패스 프로젝터의 내부로부터 어플리케이션을 실행합니다.
trapallkeys true 또는 false true 를 지정하면, 가속기 키를 포함한 모든 키 이벤트가 Flash Player 의 onClipEvent(keyDown/keyUp) 핸들러에 보내집니다.

모든 어플리케이션으로, 겉(표)에 기재되어 모든 커멘드를 이용할 수 있는 것은 아닙니다.

exec 커멘드로 사용할 수 있는 캐릭터는, A ~ Z, a ~ z, 0 ~ 9, 피리어드 (. ), 언더 스코아 (_) 뿐입니다. exec 커멘드는, fscommand 하위 디렉토리에서만 실행됩니다. 즉,exec 커멘드를 사용해 어플리케이션을 호출하는 경우, 어플리케이션은 fscommand 라는 이름의 하위 디렉토리내에 존재할 필요가 있습니다. exec 커멘드는, Flash 프로젝터 파일내만으로부터 실행할 수 있습니다.

문장구조법 2:fscommand() 를 사용해, Web 브라우저의 JavaScript 등의 스크립트 언어에 메세지를 보내려면 , Parameters commandargs 내에 2 개의 Parameters를 건네줍니다. 이러한 Parameters는 string와 식의 머지않아 이라도 좋고,fscommand() 함수를캐치 한다, 즉 처리하는 JavaScript 함수측에서 사용됩니다.

Web 브라우저에서는,fscommand() 는, SWF 파일을 포함한 Web 페이지내에 존재하는 JavaScript 함수 moviename_DoFScommand 를 호출합니다. moviename 에는,EMBED 태그의 NAME 속성 또는 OBJECT 태그의 ID property에 사용한 Flash object의 이름을 지정합니다. SWF 파일에 "myMovie" 라는 이름을 붙이고 있는 경우, JavaScript 함수 myMovie_DoFScommand 가 불려 갑니다.

SWF 파일을 포함한 Web 페이지에서는,allowScriptAccess 속성을 설정하는 것으로, SWF 파일에 의한 그 Web 페이지로의 액세스를 허가 또는 거부합니다. 이 속성은, SWF 파일이 들어있는 HTML 코드내에서 설정합니다. 예를 들어, Internet Explorer 의 PARAM 태그내나, Netscape 의 EMBED 태그내에서 설정합니다. allowScriptAccess"never" 로 설정되어 있는 경우, 송신 스크립트는 항상 실패합니다. allowScriptAccess"always" 로 설정되어 있는 경우, 송신 스크립트는 항상 성공합니다. "sameDomain" 로 설정되어 있는 경우는, Web 페이지와 같은 도메인에 존재하는 SWF 파일로부터의 스크립트 실행만이 허가됩니다. allowScriptAccess 가 Web 페이지로 지정되어 있지 않은 경우, Flash Player 8 에서는 디폴트로 "sameDomain" 로 설정되어 그것보다 전의 버젼에서는 디폴트로 "always" 로 설정됩니다.

이 함수를 사용할 때는, Flash Player 시큐러티 모델을 고려해 주세요. Flash Player 9 에서는,fscommand() 함수는, 호출원 SWF 파일이 로컬 파일 시스템의 샌드 박스 또는 네트워크 접속한 로컬의 샌드 박스에 놓여져 게다가 포함되어 있는 HTML 페이지가 신뢰되지 않는 페이지로서 샌드 박스에 놓여져 있는 경우에는, 사용할 수 없습니다. 상세한 것에 대하여는,http://www.adobe.com/go/fp9_0_security 의 Flash Player 9 시큐러티에 관한 화이트 페이퍼를 참조해 주세요.

문장구조법 3:fscommand() 함수는, 메세지를 Director (Adobe 의 Macromedia Director)에 보낼 수가 있습니다. 이러한 메세지는, Lingo (Director 의 스크립트 언어)에 의해, string, 이벤트, 실행 가능 Lingo 코드의 어느쪽이든이라고 해석됩니다. 메세지가 string 또는 이벤트인 경우,fscommand() 함수로부터 메세지를 수신하기 위한 Lingo 코드를 써, Director 내에서 액션을 실행할 필요가 있습니다. 상세한 것에 대하여는,www.adobe.com/support/director/ 의 Director 지원(support) 센터를 참조해 주세요.

문장구조법 4:ActiveX 컨트롤에 대응한 VisualBasic 나 Visual C++ 등의 프로그램에서는,fscommand() 를 사용해, 그 환경의 프로그램 언어로 처리할 수 있는 2 개의 string를 포함한 VB 이벤트를 송신할 수 있습니다. 상세한 것에 대하여는,www.adobe.com/support/flash/ 의 Flash 지원(support) 센터에서 "Flash Methods" 라고 하는 키워드를 사용해 검색해 주세요.

메모 :Flash Player 8 이후용으로 Publish 하는 경우, ExternalInterface 클래스를 사용하면, JavaScript 와 ActionScript (문장구조법 2)와의 사이, 또는 ActionScript 와 VisualBasic 나 Visual C++ 등의 ActiveX 컨트롤에 대응한 다른 프로그램 (문장구조법 4)과의 사이의 통신 기능이 향상합니다. fscommand() 는, 메세지를 Flash Player 에 송신하기 위해(때문에) (문장구조법 1) 및 Director 에 송신하기 위해서 (문장구조법 3) 계속 사용할 필요가 있습니다.

Parameters
command:String — 호스트 어플리케이션에 임의의 용도로 건네받는 string, 또는 Flash Player 에게 건네지는 커멘드.
 
args:String (default = "") — 호스트 어플리케이션에 임의의 용도로 건네받는 string, 또는 Flash Player 에게 건네지는 값.

Example
다음의 예는,fscommand() 를 어떻게 사용해 Flash Player 를 풀 스크린 모드로 해, 확대·축소를 허가하지 않게 할 수 있는지를 나타내고 있습니다. 오렌지의 박스가, draw() 를 사용해 스테이지에 추가됩니다. draw() 에서는,click event listener에게 이름 첨부 clickHandler() 이 추가됩니다. 이것은 click 이벤트에 응답해 fscommand() 의 다른 호출을 사용해 Flash Player 에 종료를 지시합니다.

메모 : 이 예는, standalone Flash Player 로 실행할 필요가 있습니다. Web 브라우저내가 아닙니다.

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);
        }
    }
}



 

코멘트가 추가되었을 경우, 메일로 받기. | 코멘트 리포트

현재의 페이지: http://flexdocs.kr/docs/flex2/langref/flash/system/package.html