SWFObjectでFlexに変数を渡す方法
SWFObjectでFlexに変数を渡す方法がわからず悩んでいます。
簡単なサンプルとして、SWFObjectで渡した変数をAlertで表示するFlexを書こうとしています。FlexもSWFObjectも勉強を始めて間もないので根本的に間違っているところがあると思いますが、自分で考えてうまくいかなかったプログラムを下に書きます。まず、htmlファイルです。
<html><body>
<script type="text/javascript" src="/js/swfobject.js"></script>
<div id="flashcontent"></div>
<script type="text/javascript">
var so = new SWFObject("foo.swf", "hogemovie", "200", "100", "7", "#336699");
so.addVariable("message", "hogehoge");
so.write("flashcontent");
</script>
</body></html>
so.addVariable("message", "huguhugu")で、Flexプログラム内の変数messageに"hogehoge"を代入できると思ったので、Flexプログラムを以下のようにしました。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="oninit()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public var message:String;
private function saySomething(arg:String):void {
Alert.show(arg);
}
private function oninit():void {
saySomething(message);
}
]]>
</mx:Script>
</mx:Application>
しかし、これではAlertのポップアップは出るものの、"hogehoge"は表示されませんでした。
お礼
返事が遅くなって申し訳ありません。MSN相談箱経由で登録したのですが、MSNにログインしても何故か「新規登録してください」になってしまうし、再度登録したメールアドレスを入力すると「このメールアドレスはすでに登録されています」のたらい回しでずっと困ってました…汗 そうなんですか。てっきり何か特殊なものが必要なのかなって思ってましたが違うのですね。私はFLEX自体まだそれほどいじってるわけではないので、swfファイルを吐き出すサーバーサイドのソフトがインストールされてないと動かないのかなと誤解してたみたいなので、大変助かりました。とりあえず簡単なWEBアプリを作るのにmxmlからちょこちょこ勉強しながらローカルでテストしてみたいと思います。ありがとうございました。