• ベストアンサー

ライブラリにある素材をクリックしてイベントを起こしたい

perseの回答

  • perse
  • ベストアンサー率74% (113/152)
回答No.4

#1です。左詰するようにしてみました。 前回同様(書き忘れましたが)カードの識別子は gif1,gif2,gif3です。 左詰の方法はsassakunさんがやった様に クリックしたカードの右隣りのカードを クリックした場所に読込んでいます。 一応コメントはつけましたがわかりづらかったら質問してください。 Flash MX 2004proで動作確認済みです。 _root.pos_x1 = 15; _root.pos_x2 = 180; _root.pos_x3 = 345; _root.pos_y = 50; //カードを選んで貼り付ける関数 gif_num: 読込み位置 function fun_Attach(gif_num) { //1~3のカード位置に読込まれるカード番号の取得 //例) card1 = 2 だと 一番目のカード位置に読込まれるのはgif2 _root["card"+gif_num] = Math.floor(Math.random()*3)+1; _root.attachMovie("gif"+_root["card"+gif_num], "G"+gif_num, gif_num); //座標設定 _root["G"+gif_num].num = gif_num; _root["G"+gif_num]._x = _root["pos_x"+gif_num]; _root["G"+gif_num]._y = _root.pos_y; _root["G"+gif_num].onRelease = fun_Release; } //カードの移動 move_num:移動するカード位置 function fun_Move(move_num) { //カードを消す _root["G"+move_num].removeMovieClip(); //となりのカード番号を取得 _root["card"+move_num] = _root["card"+(move_num+1)]; //その番号を貼り付ける(コレで動いたように見える) _root.attachMovie("gif"+_root["card"+move_num], "G"+move_num, move_num); //以下、座標設定 _root["G"+move_num].num = move_num; _root["G"+move_num]._x = _root["pos_x"+move_num]; _root["G"+move_num]._y = _root.pos_y; _root["G"+move_num].onRelease = _root.fun_Release; } //ボタンを押したときの処理 function fun_Release() { for (var i = this.num; i<=2; i++) { fun_Move(i);//カードの移動 } fun_Attach(3);//3番目のカードを読込み } //カード初期表示 for (var i = 1; i<=3; i++) { fun_Attach(i); } コメント中にあるカード位置とは ステージ上でカードを置く位置です(左から1,2,3)。 カード番号とはライブラリにあるgifの識別子です。

tukikageran
質問者

お礼

ありがとうございます。 イベント型のプログラムはaction scriptが初めてということもあり、流れが理解できずに困っております。 まず、座標の設定をし、カードの初期配置を行いfun_Attach(gif_num)に飛ぶ。 ここでカードがクリックするまでプログラムは待機しているのでしょうか? で、クリックされるとfun_Releaseへ飛ぶのでしょうか。 あと、fun_Attach(gif_num)の座標設定の項目なのですが、左辺と右辺の場所が逆ならよくわかるのですが、 なぜ左辺にこれがあり、右辺にこれがあるのかが よくわかりません。 また、_root["G"+move_num].removeMovieClip();は実際に画面からカードの画像が消えるわけではないのでしょうか? 少々質問が多くなってしまいましたが、ご回答いただけると助かります。 よろしくお願いします

関連するQ&A

  • photoshop レイヤー選択

    photoshopでレイヤーが10個あるとします。 それぞれに長方形や円などのオブジェクトが配置されているとして 画面上でその特定のオブジェクトをCtrl+クリックすると クリックされたオブジェクトのレイヤーが選択されますが、 これはレイヤーが一番上の階層にある時だけ有効なのでしょうか? 例えば新規グループ(フォルダ)を作ってこの中に 10個のレイヤーを入れると、Ctrl+クリックしても クリックしたオブジェクトのレイヤーが選択されるのではなく そのオブジェクト(レイヤー)を格納している、 グループ(フォルダ)が選択されます。 グループ内に入っているレイヤーもCtrl+クリックで 選択できる方法は何かありますか? ちなみにphotoshop CS3です。

  • ライブラリにある画像をaction scriptから呼び出して表示する

    action script初心者ですのでわかりやすく説明していただけると助かります。 今、test.flaというファイルがあり、その中にa.gif、b.gif、c.gifというファイルをライブラリに読み込んでいます。 ここで、カードというレイヤーを作り、そのアクションフレームに card1 = Math.floor(Math.random()*3) + 1; card2 = Math.floor(Math.random()*3) + 1; card3 = Math.floor(Math.random()*3) + 1; といれてランダムの1~3の数字を出しました。 この結果に基づいて、特定の座標に結果が1の場合a.gifを、 結果が2の場合はb.gifを、3の場合はc.gifを表示したいと 思います。 すでにレイヤー上に存在しているオブジェクトであれば、 位置情報をいれてそこに置くだけなのですが、なにぶんどの カードが表示されるか決められてないのでオブジェクトは レイヤー上においてありません。 ライブラリから呼び出して表示する命令はありますでしょうか? 状況としてはトランプでシャッフルして最初の手札を配る時に どういう風にして表示したらよいかということになります。 考え方の間違いなどあるかもしれませんが、その点も指摘して いただいた上で解説していただけると助かります。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • シートのクリックイベントは拾えないのか?

    ExcelのVBAに関する質問です。 さきほど「セルをクリック、またはダブルクリックしたときに○○したい」という質問に回答したのですが、「セルをクリックした」というイベントを拾う方法がわからず、ダブルクリックのパターンで回答しました。 Worksheetのイベントには BeforeDobuleClick や BeforeRightClick はあるのに Click や onClick というイベントがありません。オートシェイプなどのオブジェクトやフォーム上のオブジェクトには Click イベントがあるのですが、Worksheet になぜかありません。 これまでも同様のケースがあり、ネットで検索したりしたのですが、どれも SelectionChange で代用するものでした。それだと確かにマウスで別セルを選択したときにイベントが発生しますが、 ・キーボード操作でセルを移動してもイベントが発生する ・現在選択しているセルをクリックしてもイベントが発生しない と、厳密はマウスでクリックしたときと同じ動作になりません。 確か以前の質問で「あるセルをクリックするたびに、他のセルの値をカウントアップしたい」というようなものもありました。このような場合には、やはり Click に相当するようなイベントで処理したいです。 どうにかしてWorksheetでクリックイベントを拾うことはできないのでしょうか?

  • Photoshopで、レイヤーオブジェクトをセンタリングする方法

    Photoshop7.1で、レイヤーオブジェクトをセンタリングしたいのですが、何か簡単にできる方法知っている人知りませんか? 現在 ・画面サイズのオブジェクトを元に整列で、中央にレイヤーオブジェクトを配置しています。 ・またガイドを十字に引き、その交差する部分にマウスまたは、←↑↓→キーでオブジェクトの中心をあわせてます。 一発で画面の中心にレイヤーオブジェクトを配置する方法を知っている人がいたら教えてください。 宜しくお願いします。

  • phtoshop CS3 でのレイヤー選択について

    今までPhotoshop CSを使用してきました。 移動ツールを選択時に、ドキュメントのあるオブジェクトや文字等で「Ctrl」を押しながらクリックすると、そのレイヤーパレット上でそのクリックしたオブジェクトが含まれるレイヤーを選択状態になったのですが、CS3では、そのレイヤーが含まれているフォルダの最上位が選択されるようです。 今まで通りにレイヤー自体を選択することはできないのでしょうか?

  • Adobe Photoshopでレイヤーの選択

    Adobe Photoshop7.0を使用しています。パソコンを再インストールしたら、今まで使っていた機能が使えなくて困っています。どこかで設定すれば良いと思うのですが方法が分かりません。どなたかご存知の方、教えて下さい。 レイヤーを複数重ねてコラージュのようなモノを作った場合、編集したいレイヤーは当然、レイヤーパレットで選択されていないといけない訳ですが、 再インストール前は、編集画面に配置した、編集したいオブジェクトをクリックするだけでレイヤーパレットの該当のレイヤーが自動的に選択されて大変便利だったのですが、 現在はクリックしても一番上のレイヤーが選択されるだけで、いちいちレイヤーパレットから探さなくてはなりません。特にレイヤーが20~30~となっている場合は、探すだけでひと苦労です。(レイヤーに名前つけてません・・・) どなたか、編集画面のオブジェクトをクリックするだけで該当のレイヤーが自動的に選択される設定方法をご存知の方がいましたら、教えて下さい。

  • AS3でのマウスイベント受け渡しについて

    Actionscript3についての質問です。 どちらもSpriteクラスの親オブジェクトと子オブジェクトがあり、 ・MOUSE_OVERとMOUSE_OUTは親オブジェクトのイベントリスナーに処理をさせたい(子のaddやremoveを行うので)。 ・CLICKは子オブジェクトのリスナーに処理させたい。 という場合、どのように記述すればよいのでしょうか。 今のところ、子はmouseEnabledをfalseにして、親のクリックイベント処理でマウス座標からどの子がクリックされたのか(子は複数あります)を切り分ける方法しか思いつきません。 しかし、子が単純な形ではないのでこの方法では厳しいです。 他に何か良い方法は無いでしょうか。

    • ベストアンサー
    • Flash
  • FLASH マスクレイヤー

    FLASH超初心者です。 体験版をウィンドウズに入れて、1冊目の本を買って進めているところなのですが、早速つまづいてしまいました。 マスクレイヤーというところなのですが、本の手順は、 1 ムービーの背景色を指定 2 切りぬかれるレイヤーにオブジェクトを配置 3 レイヤーの追加をクリック 4 新しいレイヤーが作成される 5 マスクにするオブジェクトを作成 6 新しいレイヤーを右クリックしてマスクを選ぶ 7 下のレイヤーをマスクし ふたつのレイヤーが自動的にロック 8 上のレイヤーのオブジェクトで下のレイヤーがマスクされる 1 は、新規の画面の背景を変えて、 2 で、ファイヤワークスに保存してあった部屋の絵をステージに読みこみました。 3.4 レイヤーの追加をクリックして 5 は、読みこんだ部屋の絵に丸を書く・・・? 6 マスクを選ぶと・・・ 7 自動的にロック・・されません。 どこでつまづいているのでしょうか? 何だか長い割にはつたない説明で申し訳なく、 分かりにくかったら、初心者が陥りやすい間違えや勘違いも 合わせてあげていただけたら・・と思います。 よろしくお願いします。

  • イラストレーターCS4でオブジェクトダブルクリックの編集画面、、

    イラストレーターCS4でオブジェクトダブルクリックの編集画面、、 イラストレーターCSから、CS4にアップデートしましたが、 新機能になかなかなじめず困っています、。 オブジェクトをダブルクリックした時、左上に 矢印(←) レイヤー1 <パス> と出て、そのオブジェクトのみの編集画面になるのですが、 これを解除する方法はありますか? いつもその左上に現れる矢印(←)をクリックして元の全体の編集画面に 戻るのですが、とても不便です。。 または矢印をクリックしなくても元の画面に一発で戻る方法など、 あれば教えて頂きたいです! よろしくお願いいたします。

  • photoshop選択範囲

    以前までphotoshopで任意のレイヤーをCtrl+クリック(macならcommand+クリック)で、そのレイヤーに配置されているオブジェクトの選択範囲が取れていたのですが、CS3を導入してからこの方法で選択範囲が取れません。 知り合いに聞いたところCS3でも同操作で選択範囲が取れているとの事でした。(何か設定をしたがその設定を覚えていないらしい・・・) 設定がわかる方いらっしゃいますか?