メイン サーバ関連【CGI・FCS・XMLSocket etc】 PHP→Flashのデータ連携について | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Shinohara | Åê¹ÆNo.6994 投稿日時: 2004-5-7 17:30 |
新米 居住地: 投稿: 2
使用環境:
Win2000,Flash MX2004 |
PHP→Flashのデータ連携について Shinoharaといいます。よろしくお願いします。
開発環境はWin2000+Flash MXです。 Flashでゲームを作成しており、そのスコアをPHPに渡してDBに登録。 次回のプレイ時には登録してあるスコアをPHPからFlashに渡して、 スコアに応じてキャラの表示を切り換えるということをやろうとしています。 そこで、PHPからFlashへデータを受け渡すのが上手くいかなくて困っています。 PHPからFlashへのデータは変数[score]として、動的に書き出すHTMLソースの中で以下のように記述しています。
これで取得した[score]をif文で振り分けることで、キャラの表示を切り換えようとしているんですが上手くいきません。 ムービー上に設置してあるテキストフィールドでは[score]の値を取得して表示できていますので、 全くデータが取得できていないということはないと思うんですが。 キャラの表示を切り換えるためのif文はscript専用のフレーム上に記述しています。 またvar score = 1000 ; のように直接設定した場合には、キャラの表示切り換えは上手くいっています。 if文中の変数[score]には "_parent" や "this._level0." などパスを指定してみたんですが上手くいきませんでした。 何か思い当たることがありましたら、アドバイスいただけたらと思います。 よろしくお願いします。 |
森 巧尚 | Åê¹ÆNo.6998 投稿日時: 2004-5-7 18:33 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: PHP→Flashのデータ連携について パスが正しくないためだと思われますね。
if文がある場所から、ルートにあるscoreまでのパスを正しくたどってみてください。 もし、2階層下のムービークリップのフレームスクリプトからであれば、「_parent._parent」と指定する必要があります。 もし、そのゲームが他のswfから読み込まれることがないのであれば、「_root.score」で確認してみてはいかがでしょう。 また、PHPで呼び出さずに、まずローカルで試してみてはいかがでしょうか。 ルートにscore変数を作って値を入れて、if文の場所で正しく見れるかどうかです。 #ご使用の環境は、プロフィールに記入するようにしましょう。
|
西田慎吾 | Åê¹ÆNo.7003 投稿日時: 2004-5-7 20:22 |
新米 居住地: 神奈川県藤沢市 投稿: 6
使用環境:
WinXP,Flash MX2004 MacOS9,Flash Mx |
Re: PHP→Flashのデータ連携について こんにちは。shingoと申します。
よろしくお願いします。 もしかしらたで申し訳ないのですが 外部から読み込んだ文字列の場合 一度String()やNumber()等で文字型を変換してから 使ってはどうでしょうか? もしくはもう推奨されませんが==演算子をeq演算子にかえて 使用しても解決するかもしれません。 自分も同じようなことで悩んだ経験がありましたので 参考にでもなればと思いました。
|
西田慎吾 | Åê¹ÆNo.7004 投稿日時: 2004-5-7 20:22 |
新米 居住地: 神奈川県藤沢市 投稿: 6
使用環境:
WinXP,Flash MX2004 MacOS9,Flash Mx |
Re: PHP→Flashのデータ連携について こんにちは。shingoと申します。
よろしくお願いします。 もしかしらたで申し訳ないのですが 外部から読み込んだ文字列の場合 一度String()やNumber()等で文字型を変換してから 使ってはどうでしょうか? もしくはもう推奨されませんが==演算子をeq演算子にかえて 使用しても解決するかもしれません。 自分も同じようなことで悩んだ経験がありましたので 参考にでもなればと思いました。
|
多田 知之 | Åê¹ÆNo.7012 投稿日時: 2004-5-8 1:00 |
新米 居住地: 東京都 投稿: 6
使用環境:
WinXP,Flash MX2004 Professional |
Re: PHP→Flashのデータ連携について 多田といいます
取得した変数が文字として扱われているのだと思います theScore=parseInt(score); とか theScore=Number(score); などをして型変換するとうまくいくのではないかと
|
makinux | Åê¹ÆNo.7121 投稿日時: 2004-5-10 14:16 |
半人前 居住地: 投稿: 50
使用環境:
WinXP;Flash MX2004 Pro;apache1.3;MySQL 4.0.13-nt;PHP Version 4.3.2 |
Re: PHP→Flashのデータ連携について こんにちは。まきといいます。
違う方法論ですが、LoadVarsを使うと、どの階層からでもPHPから値をとって来れますよ。 ちなみに、 loadObj = new LoadVars(); loadObj.sql="sql文"; loadObj.sendAndLoad("sql.php", loadObj , "POST"); loadObj.onLoad = function(){ 処理する内容 } とかってやって、SQLだけ処理するPHPをつくると、 いちいちPHPを作る必要がなくて楽です |
Shinohara | Åê¹ÆNo.7123 投稿日時: 2004-5-10 14:30 |
新米 居住地: 投稿: 2
使用環境:
Win2000,Flash MX2004 |
変数を文字列として取得していたのが原因でした。 たくさんのアドバイスありがとうございました。
皆さんのアドバイスをもとに、今朝から色々と試してみた所、 shingoさんや多田さんのおっしゃる通り変数を文字列として取得していたことが原因でした。 変数 [score] に数値の100をプラスしたところ、800と表示されているはずが、[800100]と表示されていましたから。 そこで parseInt(score) で数値に変換してみた所、正常に動作するようになりました。 テキストフィールドに表示されていたことで、変数が取得できているものだと思い込んでしまっていたのがまずかったです。 あらためて、アドバイスしてくださった皆さんありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |