No.1ベストアンサー
- 回答日時:
Flash CS 5.5 は良いとして
今回のご質問での ActionScript 2.0 とは微妙ですね。。。
普通は
「ActionScript 2.0 を使用→Flash Player 7 以上用 SWF をパブリッシュ」
というのが一般的なのですが
ActionScript 2.0 は場合によって Flash Player 6 でも 動作するのです。
今回質問されているものの場合
ちょうどその境界部分の辺に関係する箇所があって
Flash Player 6 用と Flash Player 7 以上用 SWF とでは
違って来る部分が出て来るので
どう回答すべきか悩むところです。
(具体的には getNextHighestDepth が使えるか使えないかという違いがあります。)
しかしまあ,
字数もそんなに多くはならないと思うので
Flash Player 6 用 SWF をパブリッシュする場合と
Flash Player 7 以上用 SWF をパブリッシュする場合との
両方のスクリプト例を回答することにします。
大雑把に言えば
Flash Player 6 用でも Flash Player 7 以上用でも
どちらにしても一般的によく使われている方法の内容は同じで
マウスプレスした(またはマウスアップした) MC の深度を
その MC が存在する階層での一番上の深度に swapDepths させれば良いわけです。
この説明では
Flash Player 6 用でも 7 以上用でも
どちらにしてもとりあえず
ドラッグする4つのMCに全て違うインスタンス名を付けます。
どれがどれでも良いので
ステージ上のドラッグする4つの MC を1つずつ選択して
プロパティインスペクタより,例えば
「drag_mc0」「drag_mc1」「drag_mc2」「drag_mc3」
というインスタンス名を付けるとします。
その場合の
Flash Player 6 用 SWF をパブリッシュする場合の
4つの MC が存在する タイムライン の "フレーム" に書くスクリプト例です。
(この例では "MC 自体" にはスクリプトは一切書きません。)
◎ Flash Player 6 以上用 SWF のスクリプト
//------------------------------------
//深度カウント用変数を用意
var dep_cnt:Number = 0;
//変数 i に 0~3 を入れながらループ
for (var i:Number = 0; i<=3; i++) {
//「drag_mc○」押下時に関数 dragMC を実行
this["drag_mc"+i].onPress = dragMC;
//「drag_mc○」を放した時に関数 dropMC を実行
this["drag_mc"+i].onRelease = dropMC;
//「drag_mc○」をMC外で放した時にも関数 dropMC を実行
this["drag_mc"+i].onReleaseOutside = dropMC;
}
//関数 dragMC の定義
function dragMC():Void {
//深度カウント用変数をカウントアップ
dep_cnt++;
//押下されたMCをその深度に移動
this.swapDepths(dep_cnt);
//押下されたMCのドラッグを開始
this.startDrag();
}
//関数 dropMC の定義
function dropMC():Void {
//放されたMCのドラッグを終了
this.stopDrag();
}
//------------------------------------
◎ Flash Player 7 以上用 SWF のスクリプト
//------------------------------------
//変数 i に 0~3 を入れながらループ
for (var i:Number = 0; i<=3; i++) {
//「drag_mc○」押下時に関数 dragMC を実行
this["drag_mc"+i].onPress = dragMC;
//「drag_mc○」を放した時に関数 dropMC を実行
this["drag_mc"+i].onRelease = dropMC;
//「drag_mc○」をMC外で放した時にも関数 dropMC を実行
this["drag_mc"+i].onReleaseOutside = dropMC;
}
//関数 dragMC の定義
function dragMC():Void {
//押下されたMCを最高深度に移動
this.swapDepths(getNextHighestDepth());
//押下されたMCのドラッグを開始
this.startDrag();
}
//関数 dropMC の定義
function dropMC():Void {
//放されたMCのドラッグを終了
this.stopDrag();
}
//------------------------------------
上のスクリプト例では2例とも
MCを押した時点で(関数 dragMC 実行時に)
そのMCの深度を最高深度に移動させていますが,
MCを放した時点で(関数 dropMC 実行時に)
そのMCの深度を最高深度に移動させても良いです。
ちなみに
this["drag_mc"+i].onPress = dragMC;
などで使った [ ] を「配列アクセス演算子」と言います。
(名称不明な [ ] では調べようにも検索しにくいですよね。)
「FN0507001-ドット演算子と配列アクセス演算子」
http://www.fumiononaka.com/TechNotes/Flash/FN050 …
その他に関しての詳細などは
例えば「Flash イベントハンドラメソッド」とか
例えば「ActionScript swapDepths」とか
そんな感じのキーワードでGoogleなどで検索してもらうと
色々な情報がわかると思います。
迅速なご回答、本当に本当に感謝いたします。
Flash初心者の私にとってとてもわかりやすく説明していただいたことと
きちんと対応していただいたことに本当に感謝いたします。
早速試してみたいと思います。
本当にありがとうございました。
追伸。BlurFiltanさんは、数多くのご質問に丁寧なご回答をなさっていますね。
すばらしいお方だと感心しきりです。
今後ともよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- スピーカー・コンポ・ステレオ MCカートリッジのオススメを教えてください。 お時間割いてくださりありがとうございます。 当方、現在 10 2022/07/04 14:20
- BTOパソコン https://www.youtube.com/watch?v=8h8EVXotOwQ&t=14s 2 2022/12/23 02:25
- 工学 材料力学(構造力学?)についての問題です。 写真のような形で部材CDの内力を考えます。 C点からの距 1 2022/11/22 00:41
- アイドル・グラビアアイドル 嵐の中でも櫻井翔がMC向き扱いだったけど。 むしろ バラエティやらみていて 爺ちゃん ばあちゃん 国 2 2022/12/03 19:49
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- 物理学 相対性理論のエネルギーについて 3 2023/02/10 15:59
- 情報・ワイドショー タレントMC 5 2023/06/23 06:44
- 物理学 『四次元温度』 2 2022/05/09 11:07
- その他(ビジネス・キャリア) 海外から請求書がきたのですがPC/MCの意味がわからないのとそこの数字があってるのかわからなくて海外 2 2022/11/08 11:32
- 工学 リレーと電磁接触器の選定について 2 2023/07/12 23:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
arduino プログラムについて
-
コモンダイアログのshowopenに...
-
テキストボックスの中身をリセ...
-
別のアプリケーションのテキス...
-
シンボル化解除の方法
-
VBScriptでMsgBoxのYesNoボック...
-
テキストボックスにセルの値を...
-
四乗根を英語で言うと・・・
-
VB6.0 でメニューを作りたいん...
-
pythonの画像の貼り付けについて
-
SNMPの標準MIBについて
-
YOASOBI
-
マスクをとるとオーバーフロー...
-
マウス自体の移動量の取得
-
else if文の順序を変えることに...
-
PYTHONのtkinterについて
-
ダブルクリックと2回クリックの...
-
UWSCのBTN関数について。
-
Python でシャットダウンのコマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
VBAユーザーホームテキストボッ...
-
外部SWFファイルを再生バーでコ...
-
縦横比率のを変えずに画像のサ...
-
テキストファイルから読み込ん...
-
自由線とレイヤー画面との位置関係
-
ピクチャーコントロールのデバ...
-
四角形の端っこをドラッグした...
-
AS3でうまく動作しません
-
看護師です。体温表のマクロを...
-
AS3.0 でフェードイン、
-
ステージの背景画像のみ拡大縮...
-
AS3 mc0~5をまとめて処理する
-
AS3.0でマウスボタンの状態を調...
-
AS3.0 設置した画像を次のラベ...
-
外部より取り込んだ.swfのサイ...
-
spriteで直線を引いたときに線...
-
xmlから作ったサムネールを移動...
-
Flash マウスの位置で速さの変...
-
flash ブラウザのサイズに合わ...
おすすめ情報