2010年01月17日

FLASH HTMLにflashvarsを記述してパラメータを取得する



○HTML部分

<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>
<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("このページでは \"AC_RunActiveContent.js\" が必要です。");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
'width', '355',
'height', '292',
'src', 'VideoUnit',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'VideoUnit',
'bgcolor', '#ffffff',
'name', 'VideoUnit',
'menu', 'true',
'allowFullScreen', 'false',
'allowScriptAccess','sameDomain',
'movie', 'VideoUnit',
'FlashVars', 'name=abc&age=20',
'salign', ''
); //end AC code
}
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="400" height="330" id="VideoUnit" align="middle">
<param name=Flashvars value="name=abc&age=20">
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="VideoUnit.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="VideoUnit.swf" flashvars="name=abc&age=20" quality="high" bgcolor="#ffffff" width="400" height="330" name="VideoUnit" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>

○FLASH部分

var flashVars:Object = loaderInfo.parameters;

for (var item:String in flashVars) {

trace(item + "=" + flashVars[item]);

}

○出力結果

name=abc
age=20

・留意点
HTMLに記述したパラメータ順にFLASHに渡されるわけではないようです。
パラメータの値によっても変わったりするようです。
2010年01月15日

アップロードするファイルサイズの最大値がある。。。

申し訳ないです。。。
テストはしっかりしないとです。

PHPでファイルアップロードをする際、ファイルが大きすぎてエラーが出るときがあります。
これは /etc/php.ini でアップできるファイルの最大値をあらかじめ決めているからです。
ちなみに、/etc/php.ini では
ファイルのアップロードに関係するパラメータは3つあります。

1)memory_limit :スクリプトが確保できる最大メモリをバイト数
2)post_max_size :POSTデータに許可される最大サイズ
3)upload_max_filesize :アップロードされるファイルの最大サイズ

です。これらの値は、
memory_limit > post_max_size > upload_max_filesize
という感じで優先順位が決まってるそうなので
upload_max_filesizeをpost_max_sizeよりも大きくしても
post_max_size以上のファイルはアップできないことになります。