html<br>태그와 URL이 Flash에 flashvars 값을 전달합니다.

3458 단어 Flash
오늘의 작업은 flash가 embed의 flashvars 값을 읽는 것을 만났기 때문에 특별히 연구해 봤습니다.
먼저 html 코드를 보십시오.


AS3 코드 테스트.swf:
var tf:TextField=new TextField();var str1:String =stage.loaderInfo.parameters.width; var str2:String =stage.loaderInfo.parameters.height; var str3:String =stage.loaderInfo.parameters.color; tf.text="width="+str1+"height="+str2+"color="+str3;
tf.width=300;addChild(tf);
embed의 swf는 flashvars의 값 쌍을 읽을 수 있으며, 이 때 무대에 응답 결과가 나타납니다.이런 방법은 간단한 데이터 교환으로 편리하고 xml을 읽거나 js를 빌려 외부 데이터를 얻는 것을 피할 수 있다.
만약 여러 개의 값이 맞다면 for in으로 옮겨다닐 수도 있습니다.
AS3 코드:
var tf:TextField=new TextField();var paramObj:Object=stage.loaderInfo.parameters;for(var key:String in paramObj){ tf.appendText(key+"="+paramObj[key]);}tf.width=300;addChild(tf);
읽은 flashvars는 사실 Object 형식입니다. for in으로 옮겨다닐 수 있습니다.그러나 이런 방법은 테스트를 할 때 html 파일 경로가 중국어가 되는 것을 피해야 한다. 왜냐하면 이렇게 하면 플래시가 읽은 데이터가 부호화될 수 있기 때문이다.
 
다른 상황을 토론하다.
만약에 이 swf가 html에 삽입되지 않고 http://www.abc.com/test.swf 이런 방식으로 열면 플래시 스테이지.loaderInfo.parameters는 데이터를 얻지 못하지 않습니까?
사실도 아니니 방법을 바꾸어도 무방하다.만약 당신이 뒤에 상응하는 매개 변수를 추가한다면 http://www.abc.com/test.swf?width=300&height=500&color=blueenter가 이 페이지를 열면 무대에 url이 전해온 값이 표시되고 url이 Stage에 전해진 값이 표시되는 것을 발견할 수 있습니다.loaderInfo.parameters 객체에 있습니다.이 방법은 로컬에서 테스트할 수 없습니다. 서버에 localhost와 같이 두어야 합니다.
 
이 예에서는 다음과 같이 코드가 정리되어 있습니다.
html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Flash  embed  </title>

</head>

<body>

<div>

<object>

<embed src="test.swf" wmode="transparent" quality="high" width="550" height="400" align="L" scale="noborder" flashvars="width=300&height=500&color=blue" allowScriptAccess="sameDomain" type="application/x-shockwave-flash">

</embed>

</object>

</div>

</body>

</html>


AS3 코드:
var tf:TextField=new TextField();

var str1:String =stage.loaderInfo.parameters.width; 

var str2:String =stage.loaderInfo.parameters.height; 

var str3:String =stage.loaderInfo.parameters.color; 

tf.text="width="+str1+"height="+str2+"color="+str3;

//   for in   

/*var paramObj:Object=stage.loaderInfo.parameters;

for(var key:String in paramObj){

	tf.appendText(key+"="+paramObj[key]);

}*/



tf.width=300;

addChild(tf);


 
==================================================
그린 가든
출처: http://www.cnblogs.com/cos2004/archive/2011/03/30/1999925.html
==================================================

좋은 웹페이지 즐겨찾기