• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FLASH LITE1.1 任意に問題を表示)

FLASH LITE1.1の問題表示に関するエラーについて

このQ&Aのポイント
  • FLASH LITE1.1で40問の問題をランダムに表示させようとしていますが、うまくいきません。
  • 変数の取り扱いに間違いがあるため、エラーが発生している可能性があります。
  • 具体的なエラー箇所を特定するために、コードの各行を確認してください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

tellTarget(○○){} というのはくせ者で その {} 内の変数などは全て ○○ 階層のものを指すのです。 ですから tellTarget("/qt"){gotoAndPlay("q" add m1);} などとすると この m1 は /qt:m1 (_root 内の qt 内の変数 m1) になるんです。 ですから tellTarget("/qt"){gotoAndPlay("q" add /:m1);} のような感じにする必要があります。

hannkatu
質問者

お礼

>この m1 は /qt:m1 (_root 内の qt 内の変数 m1) になるんです。 なるほどそうだったのですね。 このたびも本当に勉強させていただきました。 ありがとうございました。

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

関連するQ&A

  • FlashLite1.1(as1)の質問です。

    携帯Flashゲームの書籍で勉強中なのですが、 以下のasで理解できないところがありまして、 教えていただけたらとても助かります。 ---------------------------------- /*もぐらの数をランダムで*/ m_kazu = random(4)+1; for (i=1; i<=m_kazu; i++) { /*出現する場所をランダムにしてmyNumberに格納*/ eval("myNumber" add i) = random(9)+1; /*ランダムな数字が重ならないように*/ for (j=1; j<=m_kazu; j++) { while (eval("myNumber" add i) == eval("myNumber" add (i-j))) { eval("myNumber" add i) = random(9)+1; } } m_basyo = "../mg" add eval("myNumber" add i); tellTarget (m_basyo) { gotoAndPlay(2); } } ---------------------------------- この for (j=1; j<=m_kazu; j++) { while (eval("myNumber" add i) == eval("myNumber" add (i-j))) { eval("myNumber" add i) = random(9)+1; } の部分がわからないのです。どうして"myNumber" add iとmyNumber" add (i-j)が等しかったら ランダムの数字が同じものだという事になるのでしょうか? iとjは同じm_kazuを使っているのではないのでしょうか?? プログラム初心者が勉強を始めたばかりなので、 質問も要領を得ていないので、大変申し訳ないのですが どなたか教えてください~!!

    • ベストアンサー
    • Flash
  • Flash Liteのムービークリップ間の変数のやりとりについて

     現在、特定のムービークリップに格納されている、2つのムービークリップ間で変数(dropのbtypeとcursorのtype間)をやりとりするプログラムを組んでいるのですが、まだ、Flash Liteの技術が未熟なため、 for(i = 0; i < 2; i++){   tellTarget("drop" add i){     ../:n = btype;   }   tellTarget("cursor" add i){     type = ../:n;   } } と、少々回りくどい記述をしてしまいます。 個人的には tellTarget("cursor" add i){   type = eval("../drop" add i add ":btype"); } のように簡潔に記述できたらよいと思っているのですが、上記の方法では、typeはundefinedとなるため、文法としては正しくありません。  コードをスマートに記述できる方法をご存じの方がおられれば、ご教示ください。

    • ベストアンサー
    • Flash
  • Flash Lite1.1について

    Flashで携帯ゲームのブロック崩しを作りたくて、あるサイトからflaサンプルを見つけました。 製作者のコメントに「ブロックを全部崩しても何も起きませんので、エンディング等は自作してください。 」とあったので、早速4フレーム目にゲームオーバー画面を5フレーム目にクリア画面を作ってみました。 そして元々のソースから if(ball._y>235){ gotoAndPlay(1); } を if(ball._y>235){ gotoAndPlay(3); } にしたまではよかったのですが、 ブロックが全て無くなったらクリア画面に移動させる方法が分からず困っています。 元々のソースは↓になります。 // ボール移動 ball._x += vx; ball._y += vy; // 壁とボールの当たり判定 if(ball._x<5 && vx<0){ vx = -vx; } if(ball._x>235 && vx>0){ vx = -vx; } if(ball._y<5 && vy<0){ vy = -vy; } //ボールが下に落ちたらゲームオーバー if(ball._y>235){ gotoAndPlay(1); } // パドルとの当たり判定 if(ball._x>pad._x-40-5 && ball._x<pad._x+40+5 && ball._y>pad._y-5-5 && ball._y<pad._y+5+5 && vy>0){ vy = -vy; vx = (ball._x-pad._x)/80*15; } // ブロックとの当たり判定 for(i=1;i<=40;i++){ bx = eval("block" add i)._x; by = eval("block" add i)._y; if(ball._x>bx-20-5 && ball._x<bx+20+5 && ball._y>by-5-5 && ball._y<by+5+5 && eval("block" add i)._visible==true){ eval("block" add i)._visible = false; //左端or右端に当たった場合 if(ball._x<bx-20 || ball._x>bx+20){ vx = -vx; }else{ //上端or下端に当たった場合 vy = -vy; } } } どの場所にどのように書くべきかいろいろ探してみたのですが、パソコン用の作り方しか見つからす゜携帯用のFlash Lite1.1には対応していない物ばかりで困っています。 ActionScriptについては初心者であまり詳しくなく、本当に恥ずかしい限りです。 どうかお解かりになる方おりましたらお力をお貸し下さい。 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • 携帯用パズルのシャッフルについて

    こんにちは。 携帯用のパズルゲームを作っているのですが、シャッフルがうまくできません。 私の持っている本(フラッシュ8用)を読むと、ランダムな数字を先に作ってからピースに置き換えて ステージに配置すると書いてあります。 携帯用に書き換えなければいけないのですがさっぱり見当もつきません。。 ランダムは for(i = 0; i < 16; i++){ while(1){ eval("p" add i) = random(16); flag = 0; for(j = 0; j < i; j++){ if(eval("p" add i) == eval("p" add j)) flag = 1; } if(flag == 0) break; } } このように書きました。 パズルのピースにはそれぞれMC0~MC15というインスタンス名がつけてあります。 ステージには各マスにp0~p15とつけてあります。 パズルピースは縦40ピクセル横40ピクセルの正方形で 縦に4枚横に4枚ならんでいるようなステージです。 全くの初心者なので、参考になるサイトなどもあれば 教えていただけると助かります。 よろしくお願いします。

  • FLASHスクリプトの不具合?

    こんにちは。 現在携帯向け待ちうけFLASHを作成しています。 ランダムでキャラクターが表示されて、時計機能がついた 待ちうけとなります。 ランダムと時計のスクリプトを設定していますが、両方を機能させると 時計が時間を取得はしますが止まったまま先に進みません。 スクリプト設定は色々なサイトを参考にしているので間違いないと 思うのですが何が問題かわかりません。 どなたかご教授いただきたいです。 ---------------------------------------------------------- キャラクターは全部で7種類。 【ランダムのスクリプト】 fscommand2("SetQuality" , "high" ); r=random(8)+2; gotoAndStop(r); で設定しています。エミュレーターで確認したところちゃんとランダム表示されているので 問題はないと思います。 【時計のスクリプト】 /* ----時間の取得---- */ hours = fscommand2("GetTimeHours"); if( hours<10){ hours = String(hours); hours = "0" add hours; } h = hours; /* ----分の取得---- */ minutes = fscommand2("GetTimeMinutes"); if( minutes<10){ minutes = String(minutes); minutes = "0" add minutes; } m = minutes; /* ----秒の取得---- */ seconds = fscommand2("GetTimeSeconds"); if( seconds<10){ seconds = String(seconds); seconds = "0" add seconds; } s = seconds; こちらも単体設定ではちゃんと時間を取得して秒ごとに表示が変わります。 2フレーム目にもgotoAndPlay(1);を入れています。

  • 0が表示されてしまいます

    次のようなプログラムを作成し、3つの配列の共通部分を表示したいのですが、うまく表示されず0が何個も表示されました。おかしい部分は/**/で囲みましたので、なぜ0が表示されるのかわかる方いましたら教えてください。お願いします。 import java.util.*; import java.lang.*; public class hairetu { public static void main(String[] args) { Random generator = new Random(); int hairetu[] = new int[90]; for(int i=0; i<90; i++) { hairetu[i] = (int)(Math.random() * 450); } int hairetu2[] = new int[90]; for(int i=0; i<90; i++) { hairetu2[i] = (int)(Math.random() * 450); } int hairetu3[] = new int[90]; int k = 0; for(int i=0; i<90; i++) { for(int j=0; j<90; j++) { if(hairetu[i] == hairetu2[j]) { hairetu3[k] = hairetu[i]; System.out.println(hairetu3[k]); k++; } } } System.out.println("\n---------------------------------\n"); int hairetu4[] = new int[90]; for(int i=0; i<90; i++) { hairetu[i] = (int)(Math.random() * 450); } /* int hairetu5[] = new int[90]; int m = 0; for(int i=0; i<90; i++) { for(int j=0; j<90; j++) { if(hairetu3[i] == hairetu4[j]) { hairetu5[m] = hairetu3[i]; System.out.println(hairetu5[m]); m++; } } }*/ } }

    • ベストアンサー
    • Java
  • 位相の問題です。

    位相の問題です。 集合Xの部分集合族Qが次の3条件(1)(2)(3)をみたすとき、QをXの位相と呼び、XとQの対(X,Q)を位相空間という (1) X∈Q かつφ∈Q (2) U1,U2,U3,・・・・Uk∈Q ならばU1∩U2∩・・・Uk∈Q (3)任意の集合族{Uλ}(λ∈Λ)について、 U∈Q(任意のλ∈Λ) ならば ∪Uλ(λ∈Λ) ∈Q ここで X=R^m,r>0 とすると Q^(m)={y∈R^m|d(x,y)<r}∪{φ} は上の(1)(2)(3)を満たす事を確かめよという問題です。 Q^(m)の元が無数にあるので普通のシラミ潰し確認するような方法は取れないようなのです。 わかるかたいましたらよろしくお願いいたします。<(_ _)>

  • 乱数を発生させて、それを配列して小さい順に並べる

    乱数の発生のさせ方は、質問集で見て import java.util.Random; class ransuu { public static void main(String args[]) { Random rand = new Random(); for ( int i = 0; i <10; i++){ int x = rand.nextInt(9); System.out.println(x); } } } を用いて表示できたのですが、そのあとの配列がよく分かりませんのでぜひ教えてください。ちなみに私の持っているテキストには任意の数(22、80、57、60、50など)を並べ替えるというものはあるのですが、今回のような乱数+配列の例が載っていないのでよく分かりませんでした。

    • ベストアンサー
    • Java
  • C言語の問題で一部分からないところがあります。

    C言語の問題で2つの4x4行列の2次元配列に格納し、それらの積を求めるというプログラムで以下のような関数を作成しました。 #include <stdio.h> void m_ena(int a0[4][4], int a1[4][4], int result[4][4]); int main(void) { } void m_ena(int a0[4][4], int a1[4][4], int result[4][4]) { int a[4][4], b[4][4], r[4][4]; int i, j; for(i=0; i<4; i++){ for(j=0; j<4; j++){ scanf("%d", &a[i][j]); } } for(i=0; i<4; i++){ for(j=0; j<4; j++){ scanf("%d", &b[i][j]); } } for(i=0; i<4; i++){ for(j=0; j<4; j++){ r[4][4] = a[i][j]*b[i][j]; } } } ここまで出来たのはいいのですが、これ以降どのようにメイン関数に書けばいいのか分からず困っています。 この問題は必ず上記関数を使う必要がありますのでどうぞよろしくお願いします。

  • パスカル言語を用いた乱数利用について

    パスカル言語を用いた乱数発生についての質問です。 パスカル言語を用いて0~100までの整数をランダムで10個出したいので、次のようにプログラムを組んだのですが、 欲しい乱数が出てきません。どこが間違えているか指摘していただけないでしょうか。よろしくお願いします。 var x : integer; p : real; {本当はintegerなのだろうが、使うよう指示されたrandom関数を使うとなるとrealしか受け付けなかった。} begin i := 0; x := seed(wallclock); while i <> 10 do begin i := i + 1; p := random(100); writeln('random(100)=',p) end end. ちなみに、これを出力した時の例はこのような感じです。 random(100)=6.8e-01 random(100)=6.4e-02 random(100)=9.3e-01 random(100)=1.3e-01 random(100)=7.2e-01 random(100)=8.8e-01 random(100)=9.1e-02 random(100)=9.5e-01 random(100)=3.6e-01 random(100)=7.9e-01 (※6.8e-01とは6.8*10^(-1)をのことです)