• 締切済み

FlashLite1.0 配列に代わる方法

初めまして、宜しくお願い致します。 現在FlashLite1.0でブロック崩しを作成しながら 勉強をしています。その中で行き詰ってしまった点があり、 是非よろしければアドバイスを頂けたら嬉しいです。 ブロックがすべて消えた事をチェックして 「ゲームクリア」の画面に移動したいのですが、ブロックが すべて消えた事をチェックする方法がわかりません。 Flash5以上のスクリプトでは「for」を使用して配列をチェック 出来るのですが、FlashLite1.0ではどのように記述 すればよろしいでしょうか? 宜しくお願い致します。

みんなの回答

  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.5

> 初期設定をしているフレームに宣言すべきだと思うのですが・・・ > どのようにすればよろしいのでしょうか? ブロック用の各MCにインスタンス名を付けて、 そのインスタンス名を使って変数を代入してあげるだけです 例えば、block1~block10というブロック用インスタンス10個が存在するとしたら、 それを配置している階層のフレームに for(i=1;i<=10;i++){ tellTarget("block" add i){//この中はblock(x)の階層から見た記述になる myNum = _parent.i; } } とすれば block1のmyNumは1 block5のmyNumは5、のように各数字が入れれます 回答No1に記述した擬似配列の初期化と合わせると、 for(i=1;i<=10;i++){ tellTarget("block" add i){ myNum = _parent.i; _parent["b" add _parent.i] = 0; } } とすることで、各ブロックに自分の番号を、配置したフレームに擬似配列を作成することが可能です ブロック内のフレームに記述するループ用スクリプト内で、 ブロックが消える時の処理に _parent["b" add myNum] = 1; そして後は回答No1で記述したクリア成立判定のような形で処理を行えばよいかと思います > (ブロックが消えるたびにカウウントが増えていき、最後に > カウントがブロックの数に達成されるとクリアに飛ぶ。という形で) > うまく動作できませんでした。 カウント用の変数をダイナミックテキスト等で表示して どのようにカウントが動いているのかを確認することが必要ですね カウントアップしなければブロック側に、 ちゃんとカウントしていれば、そのカウントを監視している側ににミスがあるということです まとめて作ってから"うまくいかない" -> "原因探し"ではなく、 一つ一つ順番に作っていけばそれだけで原因部分も把握しやすいです とりあえず私が今回の質問内容にアドバイスできるのはここまでです 成功することを祈っています

mi_zuzu
質問者

補足

ご回答ありがとうございます! さっそく自分でもやってみたのですが、 ゲームが始まってすぐにクリアの画面に飛んでしまいました。。 ブロックが配置されている階層のフレーム(ゲームプレイ中フレーム)に for(i=1;i<=10;i++){ tellTarget("block" add i){ myNum = _parent.i; _parent["b" add _parent.i] = 0; } } ボールの中の1フレーム目(初期位置設定、初期化用) で初期化 for (i=1; i<=20; i++) { _root["b" add i] = 1; } 2フレーム目がボールと壁の反射とボールとバーの反射の スクリプトがありまして、 3フレーム目にボールとブロックの当たり判定、 その後、クリア画面へ _root.EndFlag = "YES"; for (i=1; i<=20; i++) { if (_root["b" add i] != 1) { _root.EndFlag = "NO"; break; } } if (_root.EndFlag eq "YES") { tellTarget("../") { gotoAndPlay("clear"); //クリアフレームへ移動 } } gotoAndPlay(2); 何か記述ミスをしてしまったのか、ボールとブロックの 当たり判定との兼ね合いで問題があるのかわからないので、 再度調べてみようと思います!!

全文を見る
すると、全ての回答が全文表示されます。
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.4

> ブロックは1つ作成しムービークリップにして、 > ライブラリに入れた物を数個並べています。このブロックの > 配置の仕方ではブロック自体には変数名を入れれないので、 > スクリプトで変数を宣言すればよろしいのでしょうか? そうですね、スクリプトで変数を宣言してブロック毎の数字等を代入してあげても良いかと思います ただ、よくよく考えるとブロック崩しのクリア判定に配列を使うのは手間がかかるだけですね _root上などにブロック総数用変数・カウント用変数を用意しておき、 ブロックが消える毎にカウント用変数に1を足していって、 ブロック総数に達してたらクリアとする、で十分かなとも思います

mi_zuzu
質問者

補足

遅くなりましたがご返答ありがとうございます。 >スクリプトで変数を宣言してブロック毎の数字等を代入してあげても良いかと思います 初期設定をしているフレームに宣言すべきだと思うのですが・・・ どのようにすればよろしいのでしょうか? >_root上などにブロック総数用変数・カウント用変数を用意しておき、 >ブロックが消える毎にカウント用変数に1を足していって、 >ブロック総数に達してたらクリアとする、で十分かなとも思います 私もそうも思えるので、一度やってみたのですが (ブロックが消えるたびにカウウントが増えていき、最後に カウントがブロックの数に達成されるとクリアに飛ぶ。という形で) うまく動作できませんでした。 何かスクリプトが反映されない原因があると思うので、 再度見直してみようと思います!!

全文を見る
すると、全ての回答が全文表示されます。
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.3

ちょっと誤解招く可能性があるので、回答No2さんの内容に補足させて頂きます > しかし,配列アクセス演算子を使用する上での欠点は, > _root や this などのドットシンタックスと組み合わせてしか使えないというところです。 これは欠点ともとられるかもしれませんが、 参照先を明示的に示すということで構成自体を把握させるというメリットでもあります(視覚的にも) また、ドット演算子を使用しなくても 配列アクセス演算子のみで可能です 例 trace(_root["a"]["b"]) //ドット演算子を使用すると _root.a.b ちなみに、FlashLite1.xでは this による参照はできません > どこでも使おうと思えば, > ドットシンタックスの代わりにスラッシュシンタックスを使います。 プロパティや変数への参照・代入は、ドット演算子であっても、どこからでも使うことが可能です > Flash 5 以降では, > eval関数 を等式の左辺に使用できなくなったため, > 上記の 配列もどき 操作のように便利に使えません。 等式ではなく代入演算子を使用する際の左辺ですね 後方互換部分をできるだけ考えると、 左辺及び右辺を動的に変数へアクセスし代入する際の評価は 配列アクセス演算子 >= set関数 + eval関数 > eval関数のみ のような感じだと思いますよ > JavaScript の eval関数 も不人気ですしね。 eval関数は一般的に引数を式として評価するものであって、 言語によってその引数に使用可能な内容も違い、使い方は様々です

mi_zuzu
質問者

お礼

ご返答ありがとうございます。 まだまだ自分にはわからないことが多いので、 文章をよく読んで、今後の参考にさせて頂きます!! 色んな使い方があるんですね、勉強になります!

全文を見る
すると、全ての回答が全文表示されます。
noname#35109
noname#35109
回答No.2

#1の方が, 配列アクセス演算子( [ ] )について回答されているので, 私は主に 「配列に代わる方法」ということで, eval関数 と 配列 について回答します。 #1の方が,書かれている通り, 配列アクセス演算子( [ ] )を使うことはできます。 しかし, 配列自体の作成や,Arrayクラスのメソッドを使った配列の操作などはできません。 (eval でも 配列の作成は無理ですが。) 配列の要素にアクセスするためではなく, 何かのオブジェクトに対してアクセスする場合に限って, 配列アクセス演算子は使えます。 しかし,配列アクセス演算子を使用する上での欠点は, _root や this などのドットシンタックスと組み合わせてしか使えないというところです。 ~ まず配列アクセス演算子について ~ 無断引用ですが, #1の方のスクリプトを使わせて頂くとします↓。 ----------------------------------- // 初期化 for (i=1; i<=20; i++) { _root["b" add i] = 1; } // ----------------- _root.EndFlag = "YES"; for (i=1; i<=20; i++) { if (_root["b" add i] != 1) { _root.EndFlag = "NO"; break; } } if (_root.EndFlag eq "YES") { //クリアの処理 } trace(_root.EndFlag); // └→結果:YES ---------------------------------- これは十分使えます。 しかしこれを, オーソドックスな Flash Lite のスクリプトにすると次のようになります。 ---------------------------------- // 初期化 for (i=1; i<=20; i++) { eval("/:b" add i) = 1; } // ----------------- /:EndFlag = "YES"; for (i=1; i<=20; i++) { if (eval("/:b" add i)<>1) { /:EndFlag = "NO"; break; } } if (/:EndFlag eq "YES") { // クリアの処理 } trace(/:EndFlag); // └→結果:YES ---------------------------------- 本当はドットシンタックスは使えません(使える場合と使えない場合があります)。 どこでも使おうと思えば, ドットシンタックスの代わりにスラッシュシンタックスを使います。 「/」 が頭に付くと 「_root」 の意味になります。 「/:」は「_root」の変数という意味です。 また,動的にオブジェクトの名前にアクセスしたい場合は, 配列アクセス演算子ではなく,eval関数 を使います。 場合を限定すれば, ドットシンタックス と 配列アクセス演算子が使えますが, これについてはなぜ使えるのかわかりません(解析していません)。 おそらく,パブリッシュの段階で同値の何かに変換されるのでしょう。 for文は SWF にパブリッシュするときに, while文 と同じ物に変換されるため,正式にサポートされています。 ここまでで何が言いたいのかと言うと, #1の方がまちがっているという意味では決してありませんよ。 「ドットシンタックス+配列アクセス演算子」を 「スラッシュシンタックス+eval関数」に書き替える。 という例に使わせていただいただけです。 伝えたいことは, 配列アクセス演算子 は eval関数 に置きかえることができるということです。 ======================== ~ 次に配列について ~ Flash Lite 1.x では, 本当の配列を作成することはできませんが, 上のような eval関数 を使うと, 動的に何かのオブジェクトにアクセスすることも, また,「配列もどき」 を作ることも可能です。 まず, Flash Lite ではできない例↓(Flash 5 以上では可能)。 ---------------------------------- // 配列 myArr の作成 myArr = [1, 3, 8, 0, 2, 6]; // 配列要素が 2 のものを探す for (i=0; i<=5; i++) { if (myArr[i] == 2) { trace("myArr["+i+"] = "+myArr[i]); } } // └→結果:myArr[4] = 2 ---------------------------------- これ↑は,Flash Lite 1.x ではできません。 次に,上のできない例をできる例にします↓。 ---------------------------------- // 配列もどき myArr の作成 myArr_0 = 1; myArr_1 = 3; myArr_2 = 8; myArr_3 = 0; myArr_4 = 2; myArr_5 = 6; // 配列もどき の要素が 2 のものを探す for (i=0; i<=5; i++) { if (eval("myArr_" add i) == 2) { trace("myArr_" add i add " = " add eval("myArr_" add i)); } } // └→結果:myArr_4 = 2 ---------------------------------- 昔のヘルプは, eval関数 と 配列エミュレート についてもっと詳しく書かれていたのですが, 現在はすごく簡単にしか書かれてありません。 でも一応,ヘルプを参考にしてみてください↓。 Flash Lite のグローバル関数 > eval() http://livedocs.macromedia.com/flash/8_jp/main/00005198.html 配列というものは, そもそも変数を規則正しく並べただけのものですから, 変数をたくさん作ってやると同じようなものができます。 当然, eval関数 によって 二次元配列もどき も作れます。 また,その変数の集合体である, 配列もどき の各要素に動的にアクセスしたい場合も, eval関数 を使うことで可能となります。 「配列」 と 「配列もどき」 は結局同じなのです。 大きく違うところは何かと言うと, Array クラス のメソッドが使えないということです。 例えば,「reverse()」「splice」「join」「sprit」「sort」… このようなものが使えません。 しかしそれだけのことで,データとしては 配列 も 配列もどき もほぼ同じ物です。 それに, Array クラス のメソッドが使えないというだけのことで, 「reverse()」「splice」「join」「sprit」 「sort」… が不可能であるということではありません。 例えば「reverse()」などは簡単にできます。 ----------------------------------------- // myArr_0~myArr_9 に,0,2,4,6,…,16,18 を代入 for (i=0; i<=9; i++) { eval("myArr_" add i) = i*2; } // myArr_0~myArr_9 を 18,16,…6,4,2,0 をひっくり返す for (i=0; i<=4; i++) { n = eval("myArr_" add i); eval("myArr_" add i) = eval("myArr_" add (9-i)); eval("myArr_" add (9-i)) = n; } // 検証 for (i=0; i<=9; i++) { trace("myArr_" add i add "=" add eval("myArr_" add i)); } /* 結果↓ myArr_0=18 myArr_1=16 myArr_2=14 myArr_3=12 myArr_4=10 myArr_5=8 myArr_6=6 myArr_7=4 myArr_8=2 myArr_9=0 */ ----------------------------------------- ついでに「join」もやってみます。 ----------------------------------------- // myArr_0~myArr_9 に,0,2,4,6,…,16,18 を代入 for (i=0; i<=9; i++) { eval("myArr_" add i) = i*2; } // myArr_0~myArr_9 の要素を連結 for (i=0; i<=9; i++) { myArr = myArr add eval("myArr_" add i); } // 検証 trace("myArr = " add myArr); // └→結果:myArr = 024681012141618 ----------------------------------------- 中には場合によって難しいものもありますが, たいてい他も考えればできます。 一応, 配列アクセス演算子と eval関数 の使い方の違いについて少しふれておきます。 配列アクセス演算子 でオブジェクトにアクセスする場合, [ ] 内に入れられるのは1階層のみです。 一方 eval は複数の階層をまとめて1つの ( ) に入れることができます。 --- 例 ---------------  _root    └ aMC       └ bMC 配列アクセス演算子: _root["aMC"]["bMC"] eval ドットシンタックス: eval("_root.aMC.bMC") eval スラッシュシンタックス: eval("/aMC/bMC") --------------------- 結局, eval関数 は,配列アクセス演算子の代用にもなりますし, 配列もどき を作成することも, また,配列もどき を操作することも可能です。 Flash 5 以降では, eval関数 を等式の左辺に使用できなくなったため, 上記の 配列もどき 操作のように便利に使えません。 完璧に,配列アクセス演算子に取って代わられた感じです。 ちなみに, ActionScript 2 までかろうじて生き残っていた eval関数 は, Flash 9 から使用できるとされている ActionScript 3 では, 完全に抹殺されるようです。 JavaScript の eval関数 も不人気ですしね。 しかし,Flash Lite 1.x では,かなり融通の利く関数です。  

mi_zuzu
質問者

お礼

ご返答ありがとうございます! 丁寧に書いてくださり、とてもわかりやすく、 自分でもチャレンジしてみますっ!! 今後さらに熟読し、さらに理解を深めていきたいと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

Flash5以降に関わらず、FlashLite1.xでも配列アクセス演算子が使えるので、 連番をつけた変数で擬似的に配列のような形を作り、それをforで回すのが簡単な方法です ブロックが20個あったとしたら擬似配列用に20個の変数で監視します 例えば_root上に b1 ~ b20 までという変数を用意して、全てが1だったらクリア、のような形だったら _root.EndFlag = "YES"; for(i=1;i<=20;i++){ if(_root["b" add i] != 1){ _root.EndFlag = "NO"; break; } } if(_root.EndFlag eq "YES"){ //クリアの処理 } //ここまで このような感じです あとはブロックが消えた毎に各ブロック用の_root.b(x) を 1 とするようなスクリプトを加え、前途for文で回せばよいかと思います 初期化は for(i=1;i<=20;i++){ _root["b" add i] = 0; } とするだけでいいでしょう

mi_zuzu
質問者

補足

初めまして、丁重なご返答ありがとうございます。 説明して頂きました文を何度か読み返し、 大分理解できたのですが、 >連番をつけた変数で擬似的に配列のような形を作り、それをforで回すのが簡単な方法です 初歩的な質問になってしまいますが連番をつけた変数はどのように すればよろしいのでしょうか? ブロックは1つ作成しムービークリップにして、 ライブラリに入れた物を数個並べています。このブロックの 配置の仕方ではブロック自体には変数名を入れれないので、 スクリプトで変数を宣言すればよろしいのでしょうか? ご返答もらえたら嬉しいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • flashliteでランダム(シャッフル)を作りたい。

    いつもお世話になります。今回ご質問させて頂く内容はFlashlite1.0で、1~10までの数字をランダムかつ同じ数字がかぶらないように表示する方法(シャッフル)です。Flashlite2.0からは配列が使え、考えればシャッフルする方法もあったのですが、1.0ですと配列が使えない為やり方がわかりません。FlashのASは経験あるのですが、Flashliteの知識や経験があまりなく困っております。どなたかお教え頂けたらと思います。 具体的な内容なのですが、今作ったスクリプトが以下です。iという文字にsetを使い擬似配列(?)を組みarray0~array9という変数をランダムな数字で表すといったスクリプトを組んだのですが、これだとランダムなので同じ数字が何回も出てきてしまいます。これを同じ数字は省いてダブる数字が無いようにしたいと思っています。 ▼スクリプト▼ num = 10; for(i = 0;i < num;i++){ set("array" add i,random(10)); } // 確認用 trace(array0); trace(array1); trace(array2); trace(array3); trace(array4); trace(array5); trace(array6); trace(array7); trace(array8); trace(array9); お手数お掛けして申し訳ありません。どなたかお教え頂ける方がいらっしゃいましたらよろしく御願い致します。 制作環境はAdobe Flash CS3です。

    • ベストアンサー
    • Flash
  • flashlite1.1でスロットゲーム

    flashLiteに関する情報がなかなか見つけることができないので こちらで質問させていただきます。 現在flashLite1.1を使用した、簡単なスロットゲームを 作りたいなと考えています。 それぞれ携帯電話の1,2,3キーで各リールを止め、 5キーでゲーム再開というものです。 また、中央横1列の1リールのみのものとなっています。 現状ここまでは作ることができたのですが、 肝心な絵柄が揃った際にアクションを起こすことが 出来ず悩んでいます。 (同じ絵柄がそろうと『おめでとう』のような文字を表示する予定です) どのような構造でこちらが作っているかによっても 説明が変わってくるかとは思うのですが、 断片的でもかまいませんのでどのようなスクリプト等の記述を すれば絵柄が揃った際のアクションを実行することができるかを 教えていただけないでしょうか。 それを元に制作中のものに組み込んでみようかと思います。 分かりにくい説明かと思いますが お力を貸していただければと思います。 よろしくお願い致します。 <追記> FLASHのバージョンはCS3を使用しています。

    • ベストアンサー
    • Flash
  • FlashLite1.1を利用したスライドショー

    FlashLite1.1を利用したスライドショー お世話になります。 FlashLite1.1を利用したスライドショーの制作を依頼されました。 やりたいことは、外部のテキストデータに書いた画像を 読み込み、その画像ごとにリンク先を替えたい。 (全て外部テキストから指定) 5~8秒程度で画像が切り替わるスライドショーにしたい。 ということでした。 が私がわかるFlashは8以降で、FlashLiteはまったく無知です。 Flash4までバージョンを落とせば・・。 というの記事を見かけたのですが、4も使ったことがなく・・・。 丸投げで申し訳ないのですが、どなたかご教授頂ければと思います。 宜しくお願い致します。

  • ActionScriptで配列をクリアする方法を教えてください。

    ActionScriptで、オブジェクトを格納した配列をクリアする正しい方法を教えてください。 具体的には、 ・new Array() で配列を生成する。 ・new Object() で生成したオブジェクトを配列に格納する。 ・配列の中身を処理したあと、配列を一度クリアする。 ・配列に別のオブジェクトを格納する。 ような処理をしたいのですが、メモリリークを起こさずに配列をクリアするにはどうしたらいいでしょうか? 例えば、イメージはこんな感じです。(意味のないコードですが) // 配列の生成 var arr = new Array(); // 配列にオブジェクトを格納 for (var i = 0; i < 5; i++) { var obj = new Object(); obj.num = i; } // 配列のクリア arr.length = 0; // クリアした配列に別のオブジェクトを格納 for (var i = 0; i < 5; i++) { var obj = new Object(); obj.num = i * 2; } 上記のコードで、arr.length = 0; で配列をクリアしていますが、これで配列に格納されたオブジェクトが確保したメモリがすべて解放されるでしょうか? あるいは、配列の内容がなくなるまで pop() 等で取り出す等の処理をする必要があるでしょうか? 以上よろしくお願いします。

    • ベストアンサー
    • Flash
  • クラス型配列を同じクラス内関数の引数に使えますか?

    今ゲームを作成中です。クラス型の配列を引数で渡して その関数内でメンバの値を変えたいと思っています。 下記のような記述を試してみたのですがエラーは出ませんが 配列が関数内で参照できず思うようにいきません。 同じクラス内でクラス型の配列は使えないのでしょうか? その場合どのようにすれば配列でクラス内メンバの値を 保持すればよいでしょうか?ご回答お願いします。 #define Block_Max (100) Block* B Block* BB[] void main(){   for(int no=0; no < Block_Max; no++){     B->Block_Test(no,BB);   } } Block::Block_Test(int no,Block* BB[]){   BB[no]->B_Test_F = true; }

  • FlashLite1.1で、テキスト表示が『・・・』に

    FlashLite1.1を使って作ったゲームで、 904SH、V705SH、の機種のみ(他にもあるかもしれないです) テキストフィールドの表示が全て『・・・』と表示されてしまいます。 色々調べたのですが、どうしても治らないので、 もし解決方法や原因が分かる方がいればと思い、 質問させていただきました。 どうぞ宜しくお願い致します。 参考にテキストフィールドのプロパティを書いておきます。  ダイナミックテキスト  MSPゴシック  フォントサイズ12  左寄せ  デバイスフォントの使用  複数行  使用変数は e です。

    • ベストアンサー
    • Flash
  • 携帯用Flashでgeturlさせる方法

    お世話になります。似たような質問があったのですが どうしてもできなかったので新たに質問させていただきます。 携帯用のFlashアニメーションをFlashLiteで作成し、 最後にボタンを置いて他のページ(携帯用のページ)へリンクさせようとしています。 ボタンには以下のスクリプトを記述しています。 on (release, keyPress "0") { getURL("目的のURL"); } こうしたところ、PC上のブラウザや、Flashアプリケーション上のプレビューでは正確に動作しリンク先のページへ移動するのですが、 docomoのimode対応htmlシミュレーターや、携帯実機で試すと 移動しないのです。 それほど難しいことをしようとしているわけではないのですが、 何かスクリプトに問題があるのでしょうか。 指定するurlはindex.htmlでなくてはならない等制約があるのでしょうか。 現在指定しているのはパスまで(http://www.abc.ne.jp/)でファイル名まで(abc.php)は指定していません。 何か分かること、間違っていることがあれば教えてください。 どうぞよろしくお願いいたします。

  • Flash 外部テキスト読み込み 配列

    Flash初心者です。PHPスクリプトは多少組める程度です。 現在、Flashであらかじめ用意しておいた%をテキストに,区切りで保存しています。txtファイルには地域別に1日~31日までの%を記述してあります。 テキストは読込めたのですが、splitでうまく分割できません。日別(本日の日にち)で出力させたいのですが配列が不慣れです。どなたか教えてください。

    • ベストアンサー
    • Flash
  • flashのscriptを特定のフレームに!

    flashのactionscript2.0で記述したスクリプト を特定のフレームにだけ適用したいのですが どのようにすればよいのでしょうか。 いま、シーン1のフレーム1に ライブラリからMC(ブロック)を呼び出して並べるスクリプト記述したのですが、シーン1で mcとmcが衝突したら、ほかのフレームに移動するようにしたのですが 移動先の画面にもライブラリから呼び出したMC(ブロック)が並んで表示されます。 ちなみに、シーン2をつくって移動させても同じことが起こります。 ネットのサンプルコードを利用していますが スクリプトは以下の通りです。 よろしくお願いいたします。 ofs_x = 100; ofs_y = 50; // 当たり用テーブル(1ならブロック,0なら何もなし) HitTable = [ [ 1,1,1,1,1,1,1,1,1,1 ], [ 1,0,0,0,0,0,0,0,0,1 ], [ 1,0,1,0,1,1,1,1,0,1 ], [ 1,0,1,0,0,1,0,0,0,1 ], [ 1,0,1,0,1,1,0,1,1,1 ], [ 1,0,1,0,1,0,0,0,0,1 ], [ 1,0,1,0,1,0,1,0,1,1 ], [ 1,0,1,0,1,0,1,1,1,1 ], [ 0,0,0,0,1,0,0,0,0,1 ], [ 1,1,1,1,1,1,1,1,0,1 ] ]; // ブロックを配置 var i = 0; var j = 0; var depth = 0; for(i=0;i<10;i++){ for(j=0;j<10;j++){ if(HitTable[j][i] == 1){ _root.attachMovie("block", "block" + depth,depth); _root["block" + depth]._x = i * 20 + ofs_x; _root["block" + depth]._y = j * 20 + ofs_y; depth ++; } } }

  • GETで渡す配列に関して

    こんばんは。お世話になっております。 早速ですが、DB内のデータを複数あるチェックボックス(name="category[]"など)を用いて、別ファイルにGETでデータを送り、検索結果を表示させているのですが、データ量が多いため、表示させるデータ数を一定にし、「次のページへ」とリンクを張ることで前後のページに移動できるよう考えています。 そこで、今回躓いたのが、検索フォームから渡された配列のデータ(チェックボックス)を、次ページへ移動させる際、どのような記述になるのでしょうか? 当たり前でしょうが、検索実行ファイルに渡されたデータをそのまま($category=$_GET["category"];)リンクに貼り付けても上手く行かず、 $category_box = implode(' ',$_GET["category"]); $arr1 = explode(" ",$category_box); foreach($arr1 as $category_box){ $wherearr1[] = "category like '%$category_box%'";} として、配列に戻してから・・などとも思ってはいるのですが、全て上手くいくことが出来ません。 お忙しい中恐縮ですが、アドバイスなど頂けたら幸いに思います。宜しくお願い致します。

    • ベストアンサー
    • PHP