flash.system 패키지에는 SWF 파일과 컨테이너의 통신을 지원하는 패키지 레벨 함수인 fscommand()가 들어 있습니다.
Public 함수
 함수다음에 의해 정의됨
  
fscommand(command:String, args:String = ""):void
SWF 파일이 Flash Player나 웹 브라우저 같이 Flash Player를 호스팅하는 프로그램과 통신할 수 있도록 합니다.
flash.system
함수 세부 정보
fscommand()함수
public function fscommand(command:String, args:String = ""):void

언어 버전 : ActionScript 3.0
Player 버전 : 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"never"로 설정하면 SWF 파일에서 웹 페이지 스크립트에 액세스할 수 없습니다. Flash Player 7 이상의 경우 allowScriptAccess"always"로 설정하면 SWF 파일에서 항상 웹 페이지 스크립트에 액세스할 수 있습니다. allowScriptAccess"sameDomain"으로 설정하면 웹 페이지와 같은 도메인에 있는 SWF 파일에서만 스크립팅이 허용되며, 이전 버전의 Flash Player에서는 스크립팅이 항상 허용됩니다. HTML 페이지에서 allowScriptAccess를 지정하지 않으면 이 특성이 기본적으로 버전 8 이상의 SWF 파일의 경우 "sameDomain"으로, 버전 7 이하의 SWF 파일의 경우 "always"로 설정됩니다.

SWF 내용을 포함하는 HTML 페이지에서 objectembed 태그의 allowNetworking 매개 변수를 설정하여 SWF 파일에서 이 메서드를 사용하지 않도록 할 수 있습니다.

보안 관련 자세한 내용은 다음을 참조하십시오.

구문 1: fscommand()를 사용하여 Flash Player에 메시지를 보내려면 미리 정의된 명령과 매개 변수를 사용해야 합니다. 다음 표에서는 fscommand() 함수의 commandargs 매개 변수에 지정할 수 있는 값을 보여 줍니다. 이러한 값은 프로젝터와 같이 Flash Player에서 재생되는 SWF 파일을 제어합니다. 프로젝터는 Flash Player 없이 독립 실행형 응용 프로그램으로 실행할 수 있는 형식으로 저장된 SWF 파일입니다.

명령매개 변수(인수)용도
quit없음프로젝터를 닫습니다.
fullscreentrue 또는 falsetrue로 지정하면 Flash Player가 전체 화면 모드로 설정됩니다. false로 지정하면 플레이어가 일반 메뉴 보기로 전환됩니다.
allowscaletrue 또는 falsefalse로 지정하면 플레이어에서 SWF 파일이 항상 원래 크기로 그려지고 크기를 조절할 수 없도록 설정되며, true로 지정하면 SWF 파일 크기가 플레이어의 100%로 조절됩니다.
showmenutrue 또는 falsetrue로 지정하면 전체 컨텍스트 메뉴 항목을 사용할 수 있습니다. false로 지정하면 설정 및 Flash Player 정보를 제외한 모든 컨텍스트 메뉴 항목을 숨깁니다.
exec응용 프로그램에 대한 경로 프로젝터에서 응용 프로그램을 실행합니다.
trapallkeystrue 또는 falsetrue로 지정하면 액셀러레이터 키를 포함한 모든 키 이벤트를 Flash Player의 onClipEvent(keyDown/keyUp) 핸들러로 보냅니다.

표에 나열된 모든 명령을 모든 응용 프로그램에서 사용할 수 있는 것은 아닙니다.

exec 명령에는 A-Z, a-z, 0-9, 마침표(.) 및 밑줄(_)만 사용할 수 있습니다. exec 명령은 하위 디렉토리 fscommand에서만 실행됩니다. 즉, exec 명령을 사용하여 응용 프로그램을 호출하려면 응용 프로그램이 fscommand라는 하위 디렉토리에 있어야 합니다. exec 명령은 Flash 프로젝터 파일 내에서만 작동합니다.

구문 2: 웹 브라우저에서 fscommand()를 사용하여 JavaScript와 같은 스크립팅 언어에 메시지를 전송하려면 commandargs 매개 변수로 두 매개 변수를 전달하면 됩니다. 이 두 매개 변수는 문자열이나 표현식일 수 있으며 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 태그)에서 설정합니다. allowScriptAccess"never"로 설정하면 아웃바운드 스크립팅이 항상 실패합니다. allowScriptAccess"always"로 설정하면 아웃바운드 스크립팅이 항상 성공합니다. "sameDomain"으로 설정되어 있는 경우에는 웹 페이지와 같은 도메인에 있는 SWF 파일에서만 스크립팅이 허용됩니다. 웹 페이지에서 allowScriptAccess가 지정되지 않은 경우 기본적으로 Flash Player 8에서는 "sameDomain", 이전 버전의 Flash Player에서는 "always"로 설정됩니다.

이 함수를 사용할 경우 Flash Player 보안 모델을 생각해 볼 수 있습니다. Flash Player 9의 경우 호출하는 SWF 파일이 local-with-file-system 또는 local-with-network 샌드박스에 있고 포함하는 HTML 페이지가 신뢰되지 않은 샌드박스에 있으면 fscommand() 함수를 사용할 수 없습니다. 자세한 내용은 http://www.adobe.com/go/fp9_0_security_kr에서 Flash Player 9 보안 백서를 참조하십시오.

구문 3: fscommand() 함수는 Director(Adobe의 Macromedia Director)로 메시지를 보낼 수 있습니다. 이러한 메시지는 Lingo(Director의 스크립팅 언어)에 의해 문자열, 이벤트 또는 실행 가능한 Lingo 코드로 해석됩니다. 메시지가 문자열이거나 이벤트인 경우 fscommand() 함수가 보내는 메시지를 받아 Director에서 작업을 수행하는 Lingo 코드를 작성해야 합니다. 자세한 내용은 www.adobe.com/support/director/의 Director 지원 센터에서 관련 자료를 참조하십시오.

Visual Basic, Visual C++ 및 ActiveX 컨트롤을 호스팅할 수 있는 기타 프로그램의 경우 fscommand()는 해당 환경의 프로그래밍 언어에서 처리될 수 있는 두 문자열과 함께 VB 이벤트를 보냅니다. 자세한 내용은 www.adobe.com/support/flash/에서 "Flash method" 키워드를 사용하여 Flash 지원 센터를 검색해 보십시오.

참고: Flash Player 8 이상용으로 제작 중인 경우 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에 전달되는 값입니다.

참고 사항


예제

다음 예제에서는 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);
        }
    }
}

 

이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서

현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/ActionScriptLangRefV3/flash/system/package.html