소개

웹 브라우저에 불러올 때 HTML <OBJECT> 태그의 FlashVars 매개 변수를 SWF 파일의 최상위 수준으로 보냅니다. <OBJECT> 태그는 SWF 파일을 HTML 페이지에 추가하는 데 사용합니다. <EMBED> 태그도 사용할 수 있지만 너무 오래되어 더 이상 사용되지 않습니다.

<OBJECT> 태그 사용의 기본에 대한 정보는 OBJECT 태그 구문을 참조하십시오.

참고: FlashVars 기능에는 Flash Player 6 이상이 필요합니다.

FlashVars를 사용하여 SWF 파일에 값 전달

"FlashVars"라는 선택적 매개 변수를 사용하여 변수를 SWF 파일의 루트 수준에 전달할 수 있습니다. 이 매개 변수를 <OBJECT> 태그 또는 이전 <EMBED> 태그에 둡니다. 이러한 변수는 파일의 첫 번째 프레임을 재생하기 전에 모두 SWF 파일에 전달됩니다.

원하는 변수 이름을 사용하여 원하는 만큼 많은 수의 변수를 전달할 수 있습니다. 모든 브라우저에서는 길이가 최대 64KB(65535바이트)인 FlashVars 문자열을 지원합니다.

FlashVars 속성의 형식은 '&' 문자로 구분된 이름=값 쌍 세트인 문자열입니다.

'%' 문자 다음에 두자리 16진수 값을 사용하여 특수 문자 또는 인쇄할 수 없는 문자를 포함할 수 있습니다. 하나의 공백은 '+' 부호를 사용하여 표시할 수 있습니다. URL-인코딩 특수 문자에 대한 자세한 내용은 URL 인코딩(위키백과)을 참조하십시오.

다음 HTML 코드 예에서는 두 변수를 전달합니다. 첫 번째는 "myVariable"이라고 하며 값은 "Hello World"입니다. 두 번째는 "mySecondVariable"이라고 하며 값은 "Goodbye"입니다.

Object 태그 예

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="myFlashMovie" align="middle">
    <param name="movie" value="myFlashMovie.swf" />
    <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" />
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="myFlashMovie.swf" width="550" height="400">
        <param name="movie" value="myFlashMovie.swf" />
        <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" />
    <!--<![endif]-->
        <a href="http://www.adobe.com/go/getflash">
            <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
        </a>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
</object>

 

Embed 태그 예

<EMBED> 태그는 웹 페이지에 SWF 파일을 추가하는 데도 사용할 수 있지만, 오래된 태그이므로 더 이상 사용되지 않습니다.

<embed src="myFlashMovie.swf" 
    quality="high" 
    bgcolor="#ffffff" 
    width="550" 
    height="400" 
    name="myFlashMovie"     FlashVars="myVariable=Hello%20World&mySecondVariable=Goodbye"
    align="middle" 
    allowScriptAccess="sameDomain" 
    allowFullScreen="false" 
    type="application/x-shockwave-flash" 
    pluginspage="http://www.adobe.com/go/getflash" 
/>

브라우저에서는 나머지 HTML 페이지를 인코딩하는 방식과 동일하게 FlashVars 문자열을 인코딩합니다. Windows용 Internet Explorer에서는 UTF-16 호환 인코딩을 제공합니다. 기타 브라우저에서는 UTF-8 호환 인코딩을 제공합니다.

SWF 파일에 있는 ActionScript 3.0 코드의 변수에 액세스

HTML에서 SWF 파일에 변수를 전달하고 나면 SWF 파일에서 해당 변수를 사용해야 합니다.

ActionScript 3.0 LoaderInfo 개체를 사용하여 FlashVars 변수에 액세스합니다.

간단한 예

아래 코드 예에서는 FlashVars 매개 변수로 SWF 파일에 전달된 myVariable이라는 변수에 액세스하기 위해 LoaderInfo 개체를 쿼리합니다. 그런 다음 Stage에서 텍스트 필드의 텍스트를 변수의 문자열 값으로 설정합니다.

// by querying the LoaderInfo object, set the value of paramObj to the 
// to the value of the variable named myVariable passed from FlashVArs in the HTML
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.myVariable;

// set the text of the text instance named text1. Use the toString() method
// to convert the value from an object to a string so it can be used in the text field
text1.text = paramObj.toString()

사용 중인 위의 코드를 표시하는 FLA, SWF 파일 및 HTML 파일 샘플 다운로드를 수행할 수 있습니다.

고급 예

아래 코드 예에서는 다음을 수행합니다.

  • tf라는 Stage에 TextField 인스턴스를 만듭니다.
  • LoaderInfo 개체를 사용하여 FlashVars 매개 변수에서 변수를 가져옵니다.
  • for..in 루프를 사용하여 전달된 각 변수를 반복합니다.
  • 텍스트 필드에 변수 이름과 값이 표시됩니다.
// AS3
var tf:TextField = new TextField();       // create a TextField names tf
tf.autoSize = TextFieldAutoSize.LEFT;
tf.border = true;
addChild(tf);                             // add the TextField to the DisplayList so that it appears on the Stage

tf.appendText("params:" + "\n");
try 
{
    var keyStr:String;
    var valueStr:String;
    var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;   //set the paramObj variable to the parameters property of the LoaderInfo object
    for (keyStr in paramObj) 
    {
        valueStr = String(paramObj[keyStr]);
        tf.appendText("\t" + keyStr + ":\t" + valueStr + "\n");  // add each variable name and value to the TextField named tf
    }
} 

catch (error:Error) 
{
    tf.appendText(error.toString());
}

SWF 파일에 있는 ActionScript 2.0 코드의 변수에 액세스

ActionScript 2.0에서는 SWF 파일 자체에서 선언된 것처럼 FlashVars 변수에 직접 액세스할 수 있습니다.

이 예에서는 text1이라는 동적 텍스트 인스턴스의 텍스트 속성을 myVariable로 설정합니다. myVariable은 FlashVars 매개 변수에 선언됩니다.

// AS2
text1.text = myVariable;

사용 중인 위의 AS2 코드를 표시하는 FLA, SWF 파일 및 HTML 파일 샘플 다운로드를 수행할 수 있습니다.

추가 기술

OBJECT 및 EMBED 태그에 지정된 SWF 파일의 URL에 추가하여 SWF 파일에 변수를 전달할 수도 있습니다. 이 기술에서 URL에 추가된 정보는 쿼리 문자열이라고 합니다. SWF 파일을 불러올 때 즉시 변수가 필요한 경우 이 방법에는 제한사항이 있습니다. 이 방법을 사용할 때는 SWF 파일을 다운로드하여 재생해야 서버에서 대량의 데이터를 요청할 수 있습니다.

키워드: 전달; 매개 변수; 쿼리 문자열; 개체; 포함; tn_16417

이 작업에는 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License의 라이센스가 부여되었습니다.  Twitter™ 및 Facebook 게시물은 Creative Commons 약관을 적용받지 않습니다.

법적 고지 사항   |   온라인 개인 정보 보호 정책