• 締切済み

flash ドラッグ&ドロップでフレーム移動

今晩は、質問させて下さい。 使用osはmac10.6.8/ソフトはFlashCS5.5/アクションスクリプト3.0です。 特定のインスタンス(maru)を別のインスタンス(shikaku)にドラッグ&ドロップした時、指定のフレーム(29フレーム目)に進むスクリプトを教えて頂きたいです。 どうぞご教授お願い申し上げます。

みんなの回答

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

ご質問では >ドラッグ&ドロップした時、指定のフレーム… と書かれていらっしゃいますが その『「ドロップ」とはどういう状態を指すのか?』が問題です。 その『「ドロップ」という状態』を作者が定義しなければ PC はその状態を判断できません。 (その前にスクリプトも書けません。) 先ず第一に 「maru の(基準点の)座標を shikaku の(基準点の)座標に ピッタリ一致させるように maru を「ドロップ」する。」 ということなど閲覧者(ユーザー)にはほぼ不可能ですよね? したがって少なくとも 『「ドロップ」と判定する範囲』を決める必要があります。 例えば, 『maru の座標が shikaku の座標の ±10px 以内に来る場所でマウスが放されることを「ドロップ」とする。』 とか, 『maru を放すときにマウスの座標が shikaku 内にある場合を「ドロップ」とする。』 とか, 『maru の矩形エリアと shikaku の矩形エリアが少しでも重なった状態でマウスが放されることを「ドロップ」とする。』 などなど… たくさんの場合(状態)が考えられます。 . 【以下に書く例の共通条件】 ・maru も shikaku もMC(ムービークリップ)インスタンスであり  どちらの MC とも,基準点は中央付近にあるものとする。 ・スクリプトは maru や shikaku が存在するタイムラインの  フレームに書くものとする。 また,回答文字数制限により, 例2以降は 例1の「★関数 dropMaru を定義★」以下の部分のみを 書き換えるかたちで回答します。 ◎ 例1 //------------------------------ //再生停止 stop(); //maru 押下時に関数 dragMaru を実行 maru.addEventListener(MouseEvent.MOUSE_DOWN,dragMaru); //関数 dragMaru を定義 function dragMaru(e:MouseEvent):void { //maru をドラッグ開始 maru.startDrag(); //マウスアップ時に dropMaru を実行 stage.addEventListener(MouseEvent.MOUSE_UP,dropMaru); } //★関数 dropMaru を定義★ function dropMaru(e:MouseEvent):void { //maru をドラッグ終了 maru.stopDrag(); //マウスアップ時に実行する dropMaru を解除 stage.removeEventListener(MouseEvent.MOUSE_UP,dropMaru); // //もし maru の(基準点の)座標が sikaku の座標の ±10 以内であれば if (maru.x <= sikaku.x + 10 && maru.x >= sikaku.x - 10) { if (maru.y <= sikaku.y + 10 && maru.y >= sikaku.y - 10) { //maru 押下時に実行する関数 dragMaru を解除 maru.removeEventListener(MouseEvent.MOUSE_DOWN,dragMaru); //フレーム29 で再生停止 gotoAndStop(29); } } } //------------------------------ ◎ 例2 //------------------------------ //~以上は 例1 と同じ~ //★関数 dropMaru を定義★ function dropMaru(e:MouseEvent):void { //maru をドラッグ終了 maru.stopDrag(); //マウスアップ時に実行する dropMaru を解除 stage.removeEventListener(MouseEvent.MOUSE_UP,dropMaru); // //もし maru をドロップしたときのマウスの直下に sikaku があれば if (maru.dropTarget != null && maru.dropTarget.parent == sikaku) { //maru 押下時に実行する関数 dragMaru を解除 maru.removeEventListener(MouseEvent.MOUSE_DOWN,dragMaru); //フレーム29 で再生停止 gotoAndStop(29); } } //------------------------------ ◎ 例3 //------------------------------ //~以上は 例1 と同じ~ //★関数 dropMaru を定義★ function dropMaru(e:MouseEvent):void { //maru をドラッグ終了 maru.stopDrag(); //マウスアップ時に実行する dropMaru を解除 stage.removeEventListener(MouseEvent.MOUSE_UP,dropMaru); // //もし maru の矩形エリアと sikaku の矩形エリアがヒットしていれば if (maru.hitTestObject(sikaku)) { //maru 押下時に実行する関数 dragMaru を解除 maru.removeEventListener(MouseEvent.MOUSE_DOWN,dragMaru); //フレーム29 で再生停止 gotoAndStop(29); } } //------------------------------ ◎ 例4 //------------------------------ //~以上は 例1 と同じ~ //★関数 dropMaru を定義★ function dropMaru(e:MouseEvent):void { //maru をドラッグ終了 maru.stopDrag(); //マウスアップ時に実行する dropMaru を解除 stage.removeEventListener(MouseEvent.MOUSE_UP,dropMaru); // //もし sikaku が maru の(基準点の)座標とヒットしていれば if (sikaku.hitTestPoint(maru.x,maru.y,true)) { //maru 押下時に実行する関数 dragMaru を解除 maru.removeEventListener(MouseEvent.MOUSE_DOWN,dragMaru); //フレーム29 で再生停止 gotoAndStop(29); } } //------------------------------ まだまだ『「ドロップ」が指す状態』は考えられますが, 字数制限もあるためこの辺で。。。

関連するQ&A

  • 指定したURLを開くアクションスクリプトを教えてください

    FlashCS4です。アクションスクリプト3.0です。 タイムラインのフレームにアクションスクリプト3.0を使用して、ボタンをクリックしたら指定したURLが別ウインドウで開くアクションスクリプトの記述を教えてください。お願いします。 具体的には…例えばボタンに「navi_btn」と言うインスタンス名を使用して、そのボタンをクリックしたら指定したURLが別ウインドウで開くようにしたいのです…。教えてください。よろしくお願い致します。

    • ベストアンサー
    • Flash
  • ドラックドロップが出来ない

    あるときを境に、確認できる範囲で、デスクトップ ・iTunesでドラッグ・ドロップが出来なくなりました i-book(MAC OS 10.2.8)を使用していますが、トラックパッド・マイクロソフト製2ボタンマウスどっちも動かなくなりました 何か設定をいじったとは思いますが、何が原因でドラックドロップが出来なくなったのかわからなくなりました 一通りは見たのですが状況が変わらないので、何か抜けているとすればと思い質問しました よろしくお願いします

    • 締切済み
    • Mac
  • 二択のフレーム移動

    ボタンクリックで3216フレームか3062フレームの どちらかにランダムで移動させたいんですが、 アクションスクリプトをどう記述していいのか分かりません。 on (press){gotoAndPlay( この形の記述で出来るのでしょうか? それとも別の形なのでしょうか? 教えてください。 過去記事ではランダムに1から5の間のどれかに飛ばせる というものがおおく、特定の2フレームというのは なさそうでした…探しても見つけられませんでしたので、 どうぞお助け下さい。 当方バージョンは Flash8 プロフェッショナルです。

    • ベストアンサー
    • Flash
  • fetchアップロード時ドラッグ&ドロップできない

    マックOS10.3 fetch401jです。 fetchでアップロードする時、ドラッグ&ドロップできません。 なので、階層を指定するしか方法がありません。 以前のバージョンでは出来たのですが、とても不便です。

    • ベストアンサー
    • Mac
  • Flash オブジェクトに二つの機能をつけた場合

    こんにちは.またまたお世話になります. 環境は「Mac/FlashCS3/AS1&2」です. 今回は,オブジェクトにロールオーバーの機能とドロッグ&ドロップの機能をフレームごとで,機能させたいのです. 例えば,"s1"フレームではMC1~3をロールオーバーしたときアルファ50にし,ロールアウトするとアルファ100に戻す. また,"s2"フレームではMC1~3をドラッグ&ドロップできる. 以上のASを制作すると,”s1”~”s2”へのフレームを移動したときに,ロールオーバーとドラッグ&ドロップの機能が混在してしまいます. 以前に,「オブジェクトの表示/非表示」の質問で「変数フラグを作成して・・・」といったご回答をいただいて,これが参考になるとは思うのですが,オブジェクトを指定するために使うfor文や,ちょっと長く記述するロールオーバーなどのASが入ってくると,お手上げでございます(汗). どうか解決のほどよろしくお願いします.

    • ベストアンサー
    • Flash
  • ドラッグアンドドロップが出来ない

    数日前まで何気にドラッグアンドドロップで下書きした文章等を例えばFacebook等の投稿に使っていましたが、いきなり出来なくなりました。OSは「7」、Internet Explorerは「Version 10」です。コピーして貼り付ける事は可能ですが、ドラッグアンドドロップではドロップする際に黒い○に斜めの線が入り、落ちません。但し、試しにデスクトップ上に画像を一旦保存し、ドラックアンドドロップでゴミ箱へは移せますし、ハードディスク上でも、例えばドライヴCからDへの移動は出来ます。 スタートからプロパティ、カスタマイズと進み、「コンテキスト メニューと~」の「ドラックアンドドロップ」では、有効化するにチェックが入っています。 コントロールパネルから「マウス」へ、「クリックロックをオンにする」にはチェックは入っていません。 タスクバーから「タスクマネージャーの起動、というネット上で紹介されている方法も試しましたが、解決しませんでした。 マウスに不具合が有ると、線が引けないという情報も有ったので、Photosshop Elementsで線を引っ張ってみたり、「IMEパッド」で手書きもしてみましたが、問題なく線も引けます。 達人のお知恵拝借。

  • イラストレーターからフォトショへドラッグ&ドロップ

    イラストレーターからフォトショへ、書いた文字などを ドラッグ&ドロップするとそのまま使えたのですがさっきは できませんでした。先日MacOS8.6から9.1へOSを入れ替えたのですが 関係があるか分かりません。 しかし、ペンツールで丸やハートを書いた場合はできます。 文字が入ると、文字に重なっているハート等も移せなくなります。 黒い文字は今やったらできました。しかし色を付けるとダメになります。 文字をドラッグ&ドロップする時に、一瞬だけ注意メッセージが表れます。 一瞬です。。。 ドラッグしたアイテム。。。EPS。。。(AICB。。 という文字だけ読み取れました! なにか御存じの方、いらっしゃいますか?

  • 【FLASH】階層を越えて指定フレームへ

    こんにちは。 以前も別の設定で質問させていただきましたが、またわからないところが出てきてしまいました。 どなたかご教授いただけないでしょうか。 ------------------------------------------------------------------------------- 携帯向けの待ちうけFLASHですので設定はFlash Lite 1.1となります。 説明用の画像を作ったのですがサイズを大きくすると自動修正されてしまい文字が読めない と思うのでyahooフォトに画像をいれてあります。 お手数ですがこちらからアクセスしていただき参照してください。 http://photos.yahoo.co.jp/kaerunokimutidon ※オリジナルサイズで表示すると見やすいと思います。 9種類のキャラクターのどれかがランダムで表示されて、 表示されたキャラクターはムービークリップ内で飛び跳ねる等のワンアクションを 繰り返す設定になっています。 ですがこれを、表示されたキャラクターのワンアクションが終わったらまたランダムで 別のキャラクターが表示され、そのキャラクターがワンアクション終えたらまたランダムで 別のキャラクターに・・・というものを作りたいと思っています。 ランダムのスクリプトのフレームには「script」と名前を付け、各キャラクターの最終フレームに gotoAndStop("script");を入れたのですが飛んでくれずに同じキャラのアクションが 繰り返されるだけとなってしまいます。 階層を越えて指定フレームに飛ぶ方法を教えていただきたいです。 よろしくお願いします。

  • ドラッグアンドドロップについて(startDrag+stopDrag)

    現状のファイルではstartDrag+stopDragにてムービークリップをドラッグアンドドロップ出来るようにしています。 このドラッグの操作感をデフォルトより重い感じにしたいと思っておりますが、どのようにスクリプトで制御していいのかが分からず大変困っております。 ご存じの方がおられましたら大変お手数ですが、ご教授いただければと思います。 何卒、宜しくお願い申し上げます。

    • ベストアンサー
    • Flash
  • ドラッグ&ドロップができない

    職場のPCで下記のようなエラーが出ました。 PCを起動するとタスクバーのショートカットアイコンをクリックしても動きません。固まっている状態になります。デスクトップのマイコンをクリックしても開いたまま固まります。それを強制終了するとタスクバーも正常に動くようになります。 次にこれでPCが動くようになっても次にフォルダからフォルダへドロップ&ドラッグでデータを移動しようとしても動きません。右クリックで「切り取り」または「コピー」での移動は可能です。マウスではドラッグ&ドロップできないんです。これ以外は正常に作動しています。 システムが不安定なのかと思いOSの再インストールも検討しているのですが、データの保存など時間がかかりそうなのでとりあえず自宅から私用のデスクトップPCを持ってきたのですが、昨日まで正常に動いていたPCがまた同じような現象になるんです。 デスクトップのアイコンの位置の入れ替えすらできなくなりました。タスクバーにフォトショップのショートカットを作ろうとしてもドラッグ&ドロップができません。不要なファイルをドラッグ&ドロップで削除しようとしても捨てられません。ただDeleteを押しての削除は可能です。 昨日まで別の場所で正常に動いたPCまで同じような状況になるなんておかしすぎますよね??LANでつないでいるから??そんなことはないですよね。最初に使っていたPCも1ヶ月ほど前までは同じ状況で何の問題もなく使えていましたし。場所による影響なんてありえないと思うのですが、何か良い解決策をお持ちの方はいらっしゃらないでしょうか??エラーチェックもしましたが解決しません。 よろしくお願いいたしますm(_ _)m

専門家に質問してみよう