Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 애드온
- 강좌
- CLIK
- 플래시
- autodesk
- flash player 10
- DataBinding
- scaleform4
- Chart
- 클릭
- as2
- as3
- scaleform3
- GDC
- 샌프란시스코
- MMOKit
- Document Class
- watch
- scaleform
- 형변환
- 집합의 연산
- flash
- ApplicationDomain
- KGC 2013
- 스케일폼
- flash cs3
- addChild
- 수학정석
- 태그클라우드
- as3.0
Archives
- Today
- Total
scaleform.minarto.com
FlashVars 가져오기 본문
어제 고민에 빠졌던 LoaderInfo 문제를 해결하였다. 코드의 문제가 아닌 html 상의 문제로 cs3에서 제너레이트하는 html과 충돌이 있었던 것 같다.
html
첫번째 방식이나 두번째 방식이나 위의 코드에서 뿌려주는 것은 같다.
하지만 첫번째 방식으로는 변수명으로 접근을 할 수가 없고 두번째 방식으로는 접근할 수가 있다. 그러므로 브라우저 호환성을 위해서는 두번째 방식을 써야한다.
html
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"
width="550"
height="400"
align="middle"
id="test">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="test.swf?num=1" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="test.swf?num=1"
width="550"
height="400"
autostart="false"
quality="high"
bgcolor="#ffffff"
name="test"
align="middle"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"
width="550"
height="400"
align="middle"
id="test">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="test.swf?num=1" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="test.swf?num=1"
width="550"
height="400"
autostart="false"
quality="high"
bgcolor="#ffffff"
name="test"
align="middle"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
as3.0
var tf:TextField = new TextField();
tf.autoSize = TextFieldAutoSize.LEFT;
addChild(tf);
try
{
var properties:String;
var value:String;
var parameters:Object = LoaderInfo(this.root.loaderInfo).parameters;
for (properties in parameters)
{
value = String(parameters[properties]);
tf.appendText(properties + " = " + value + "\n");
}
}
catch (error:Error)
{
tf.appendText(error);
}
여기까지는 여기저기 검색해보면 나오게 되는 방식으로 값을 뿌려본 것이다.
그런데 한가지 더 발견한 것이 있다.
익스플로러(7)에서 테스트를 하면 예상했던 대로 num = 1 이라고 나오지만,
파이어폭스(2)와 오페라(9)에서는 (경로)test.swf?num = 1 이라고 나오게 된다.
요컨데 플래시에서 변수명으로 접근하려면 그걸 해결하려면 swf?변수명=값 으로 넣지 말고 FlashVars 를 이용해야 한다
html
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"
width="550"
height="400"
align="middle"
id="test">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="test.swf" />
<param name="quality" value="high" />
<param name="FlashVars" value="kkk=1" />
<param name="bgcolor" value="#ffffff" />
<embed src="test.swf"
width="550"
height="400"
autostart="false"
quality="high"
bgcolor="#ffffff"
FlashVars="kkk=1"
name="test"
align="middle"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"
width="550"
height="400"
align="middle"
id="test">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="test.swf" />
<param name="quality" value="high" />
<param name="FlashVars" value="kkk=1" />
<param name="bgcolor" value="#ffffff" />
<embed src="test.swf"
width="550"
height="400"
autostart="false"
quality="high"
bgcolor="#ffffff"
FlashVars="kkk=1"
name="test"
align="middle"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
첫번째 방식이나 두번째 방식이나 위의 코드에서 뿌려주는 것은 같다.
하지만 첫번째 방식으로는 변수명으로 접근을 할 수가 없고 두번째 방식으로는 접근할 수가 있다. 그러므로 브라우저 호환성을 위해서는 두번째 방식을 써야한다.