• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:getURLでの変数の渡し方)

getURLでの変数の渡し方

noname#35109の回答

noname#35109
noname#35109
回答No.1

> PHPから商品IDと商品名を受け取り、 > その商品数分のムービークリップをattachMovieで配置しています。 ということですから, LoadVars や XML クラスなどの インスタンスオブジェクト 内に, すでに,商品IDと商品名がロードされているのではないでしょうか? その辺りは, 現物の FLA ファイルを見てみないとなんとも言えませんが。 例えば, 「myLV」や「myXML」などと言うインスタンス名のオブジェクトが,  var myLV = new LoadVars(); とか,  var myXML = new LoadVars(); とかいう感じで,フレーム1 か フレーム2 辺りで生成されていて, その「myLV」や「myXML」などのインスタンスの中に,  item_id という変数とその値, または  <商品2 item_id=2>みかんの皮むき機</商品> のような形でロードされていると思います。 「myLV」や「myXML」というのは, 今私が勝手に作ったインスタンス名ですから,実際にはどんな名前かわかりません。 そのインスタンス名を決めた人が決める物です。 それで,そのインスタンスの中から, ロードされた値を参照しなければならないと思いますよ。 こちらといたしましては, データもFLAも見ることができないので,なんとも回答できませんね。 データやFLAファイルを見ても複雑なものであれば理解できない可能性もあります。 最終的な形としては,値を参照して, getURL("URL?item_id=" + 参照した変数名) のような形で実行できると思います。 それ以上は何とも言えません。 > attachMovieの際にgetURLをムービークリップに貼るのでしょうか? > それともムービークリップにgetURLを書いて変数を参照するのでしょうか? なんとかすればどちらでもできると思いますが, どちらかと言うと,attachMovieの際にgetURLをムービークリップに貼る方が簡単だと思います。 例えば myMC0 ~ myMC? を attachMovie で配置したあとに, ------------------------------------- for (var i= 0; i<データ数; i++) { // 各MCをクリックしたときの動作を定義 _root["myMC"+i].onRelease = function() { getURL("URL?item_id=" + i); }; } ------------------------------------- とか, ------------------------------------- for (var i= 0; i<データ数; i++) { // 各MCをクリックしたときの動作を定義 _root["myMC"+i].onRelease = function() { getURL("URL?item_id=" + _root.myLV["item_id"+i]); }; } ------------------------------------- このような感じでするのが簡単だと思います。 しかし, これまた,FLAやデータを見ていないのでなんとも言えません。 上のスクリプトは,単なる雰囲気的なものです。 実際にはまずうまく動作しないと思います。

nobnobnobnob
質問者

お礼

回答ありがとうございます。 以下のようにattachMovieの際にgetURLを貼って試しているのですが、値がundefinedとなります。 itemid_arrにはロードした商品IDが格納してあります。 for( i=0; i<itemid_arr.length; i++ ) {  itemMC_name = "item" + i;  _root.attachMovie("itemMC", itemMC_name, i);  _root[ itemMC_name ].onRelease = function() {   getURL( "URL?item_id=" + itemid_arr[ i ] );  } } sassakun様からご指摘いただいた内容と代わりないように思うのですが、、。 traceで確認してもitemid_arrには値はあるのですが、クリックして飛んだ先のURLを見ると「URL?item_id=undefined」となります。 どのタイミングで値がなくなっているのでしょうか?

関連するQ&A

  • FlashLite getURL

    お世話になります。 FlashLite1.1にて、 value1 = "ほげほげ1"; value2 = "ほげほげ2"; getURL( "http://xxx", "_blank", "GET"or"POST" ); で、データを送信しています。 (1)このとき渡される変数は、どの範囲まで渡されるのでしょうか?  別のムービークリップに同名の変数があった場合など・・・ (2)"_blank"でターゲットを指定していますが、  一見無意味なこの処理を省略するとうまくいきませんでした。  理由がわかるかたいらっしゃいますでしょうか? 以上、よろしくお願いいたします。

  • Flashvars getURLの書き方

    AS2の質問です。 flashvarsでhtmlからの指定でURLを引用したいと思っています。 作りたいのは画像・URLは全て外部(html)から引用した画像リンクです。 画像はマウスオーバーでアルファを変えます。 古い記憶からgetURLで指定すればよかったような気がし、 ムービークリップに指定しましたが「undefined」と表示されました。 (ボタンだと上手くいくのですが、今度はアルファがうまくきかず……) 下記のようなスクリプトを書いています。 ---------------------------------------------------- onClipEvent(load){ this._alpha=50; } on(rollOver){ _root.******._alpha=100; } on(rollOut){ _root.******._alpha=50; } on(release){ getURL(++++++); } ------------------------------------- *******がムービークリップのインスタンス名 ++++++が引数となります。 こちらは動画の最後に表示するものとして作っています。 よろしくお願いします

    • ベストアンサー
    • Flash
  • actionscript 2.0 配列型変数をグローバル変数として扱いたい。

    action script2.0で ある変数を、共有しようと、ムービークリップに _global.hoge = _name(ムービーのインスタンス名); というような記述をしました。 すると、たしかにほかのどのムービークリップでも hogeという値は取り出すことができました。 ところが、インスタンスはひとつではなく複数あるため、 _global.hoge = _nameが記述されているムービークリップがいくつもあると、 次々上書きされ、結局hogeは、最後に読み込んだ _nameの値が入ってしまうという現象が起きたのです。 そこで _global.hoge[_name] = _name; というような、変数名がかぶらぬよう配列に変更してみました。 ところが、また問題が発生しました。 なぜか、配列だと頭に_globalとついていても グローバル変数として扱ってくれず、 ほかの場所で hoge[1] 等と記述しても全く値が取り出せないのです。 また、同ムービークリップ内ではちゃんと取り出せました。 どうすれば、配列変数をグローバル変数として 扱うことができるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービークリップ内の変数について

    ムービークリップ内で扱った変数をルートで取り扱う時は _root.ムービークリップインスタンス名.変数名 このような形で取り扱うのでしょうか?。 また、ルートの1フレーム目のフレームアクションで変数を定義していた場合は、単に変数名だけで取り扱えるのでしょうか?。 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • 変数使い方?(> <)

    アクションスクリプト初心者です。 変数iに0を代入して、ムービークリップをクリックされるたびに1ずつ増やしていき、1回目にクリックしたときと2回目にクリックしたときに異なる処理を行いたいと思っております。 一回目の処理はうまくいくのですが、2回目の処理はうまくいかず、1回目と同じ処理になります。 対処法を教えてください!お願いしますM(_ _)M onClipEvent (enterFrame){ i=0; } on(release){ i++; if(i==1){ getURL("http://www.yahoo.co.jp") } if(i==2){ getURL("http://www.google.co.jp") } }

    • ベストアンサー
    • Flash
  • 変数のフレーム間の移動

    ムービークリップ内に作ってある変数をフレームを移動してでも呼び出して使えるようにしたいのですが _root.ムービクリップインスタンス.変数名 だとできないです。 どうすればできるのでしょうか? 教えてください

  • ActionScript2.0のイベントについて

    親ムービークリップに配置した子ムービークリップのイベントが実行されなくて困っています。 親ムービークリップ自体には下記のイベントを設定しています。親ムービークリップはattachMovieで動的に配置しています。 onRollOver・・・onEnterFrameを設定 onRollOut・・・onEnterFrameを削除 子ムービークリップを配置して子ムービークリックにイベントを設定しました。onEnterFrameをは実行されますが、onReleaseが実行されず困っています。 function Parent() { this.onRollOver = function() { this.onEnterFrame = function(){・・・} } this.onRollOut = function(){ delete this.onEnterFrame; } this["child_mc"].onRelease = function() { trace('a') // 実行されない } this["child_mc"].onEnterFrame = function() { trace('b') // 実行される } } ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ _root.attachMovie("Parent", "parent_mc", _root.getNextHighestDepth(), new Parent()); 子ムービークリップはオーサリングで静的にParentに配置し、プロパティでchild_mcと設定しています。 onReleaseは実行できず、そこで止まっています。 なんでも良いので教えてください。

    • ベストアンサー
    • Flash
  • flash lite1.1 変数を受け取って表示

    今flash lite1.1を使いPHPと連携させる作業を行っています。 その中で、変数を受け取ってflash上のダイナミックテキストでその変数の言葉を表示させるといったことがうまく出来ない状態です。 今試したことは、下記の方法でPHPからflashのダイナミックテキストを変数を指定して変更する方法です。1フレーム目にダイナミックテキストを配置し、そこに変数を記入するとうまくいくのですが、1フレーム目に配置してある、ムービークリップの中にある5フレーム目のダイナミックテキストに同じ変数を書いてもうまくいきません。 そこで、1フレーム目のダイナミックテキストがうけとった、内容を他の階層のダイナミックテキストで表示させることは可能でしょうか? loadVariablesNum等いろいろと試したのですが、うまくいきません>< わかる方がみえましたら、ぜひお願いします。 flash lite1.1とPHPの良い連携の仕方が他にあればそちらも教えていただけますと、助かります。よろしくお願いします。 http://libpanda.s18.xrea.com/commentary.txt

  • attachMovieでムービークリップを生成したい

    バージョンはflash MXです。 フレームでphpから読み込んだ変数を使用して画面にムービークリップを 配置したいのですが、「帽子」のムービークリップが2つ出てしまいます。 どうすれば出なくなるのか教えてください。よろしくお願いします。 プログラムは追記で記入します。

  • AS3:ルートの変数とムービークリップ内の変数について

    AS3:ルートの変数とムービークリップ内の変数について ルートのタイムラインで設定した変数var RootVarがあるとして、これをあるムービークリップMCからMovieClip(root).RootVarで読み取って、MC内で何か処理をしたときMovieClip(root).RootVar++;とやってもルートのRootVarの値は変わりません。 例えば、 ■ルートのタイムライン1フレームに記述 var RootVar:uint; if(RootVar>=3){ trace("できた!!"); } ■ステージにあるムービークリップMCのタイムライン1フレームに記述 MovieClip(root).RootVar=0; var AddTimer:Timer = new Timer(1000,3); AddTimer.addEventListener(TimerEvent.TIMER,AddNum); AddTimer.start(); function AddNum(eventObject:TimerEvent):void { MovieClip(root).RootVar++; } ルートからムービークリップ、ムービークリップからルートへ変数に値を渡したり受け取ったりはできなのでしょうか? 変数の扱い方が問題なのでしょうか?よろしくお願いします。 環境:AS3、Flash CS4

    • ベストアンサー
    • Flash