TOSSランド>TOSSコミュニティ>その他
【山田庵】TOSSランド建設Flash 使い方教室2/ 課題11

Flash 使い方教室2〜初級スクリプト編〜

作成者:TOSSオホーツク山田正和
作成日:2004年9月30日(木)
最終更新日:2004年10月10日(日)
©Two-Way All rights reserved
TOSSランドは世界一の教育情報ポータルサイトです。
TOSSランドの正式名称はインターネットランド(登録商標4468327号)と言います。

課題11:ドロップしたら固まりなさい。

●ステップ1:1つの教材を細分化して考えなさい。

  1. ドラッグ&ドロップを利用した教材の中には、「重なり判定(ヒットテスト)」を行うタイプがあります。(*1)
    標的(正解の絵など)」に重ねることで、マルが付いたり正解音が鳴ったりする教材です。

    →「重なり判定」のサンプル(11a.swf)

  2. この手の教材は、幾つかの技が組み合わさって出来ています。
    (1)ボタンを包んだムービークリップを、ドラッグ&ドロップさせる技
    →前回課題(課題9)で学習したばかりの技。
    (2)ドロップ時に、赤マルを表示させる技
    →まだ学習していない技。
    (3)ドロップ時に、正解音を鳴らす技
    →まだ学習していない技。
    (4)ドロップ時に、ムービークリップを固める技(以後ドラッグ&ドロップを出来なくする技)
    →まだ学習していない技。
    (5)ドロップ時に、ムービークリップを「標的」にピッタリ重ねる技(微妙な位置のズレを修正する技)
    →まだ学習していない技。
    (6)「重なり判定」が有効な時だけ、(2)〜(5)を実行する技
    →まだ学習していない技。
  3. 今回の課題(課題11)では、比較的簡単な(2)と(4)の技だけを先に学習します。
    (2)ドロップ時に、マルを表示させる技
    →今回は、「標的」に重ねなくても(どこにドロップしても)赤マルが表示されるようにする。
    (4)ドロップ時に、ムービークリップを固める技(以後ドラッグ&ドロップを出来なくする技)
    →今回は、「標的」に重ねなくても(どこにドロップしても)固まるようにする。

    →これから作る作品(11b.swf)

  4. 残りの難しい技は、後(あと)の方の課題で学習する予定です。
  5. いずれ取り組む完成品(重なり判定付ドラッグ&ドロップ)のために、今回は「部品(パーツ)」の作り方をしっかり学習しておいてください。

*1:「ヒットテスト(hit test)」は、文字通り「当たり判定」「命中判定」などと呼ぶ場合もあります。
 ここでは「ドラッグ&ドロップで標的に重ねる」動作から考えて、「重なり判定」と訳しておきました。

●ステップ2:助走問題「クリックで赤マルを表示するフリップ」を作りなさい。

  1. まず助走問題に取り組みます。
    これから「ボタンをクリックすると、赤マルが表示されるフリップ」を作ってもらいます。(趣意説明)
  2. "Flash"を起動しなさい。
  3. 楕円(だえん)ツール」を使って、ステージやや左上に円を書きなさい。
    面積はステージの10分の1程度、色や線の太さは特に問いません。

  4. 今描いた円を「ボタン」に変換しなさい。
    円の「ぬり色」をダブルクリック→そのまま右クリック→「シンボルに変換」です。
  5. シンボル名は分かりやすければ何でも良いのですが、ここでは「円ボタン」としておきます。

  6. 「円ボタン」にスクリプトを書き込んで、「次へボタン」として機能するようにしなさい。
    on(release){
    	nextFrame();
    }
    
  7. 2枚目の用紙(フレーム)を用意して、「赤マルを付けた円ボタン」を描きます。(趣意説明)

  8. 「タイムライン(時間割)」の2フレーム目を右クリック→「キーフレームの挿入」。
    これで、1フレーム目と全く同じ絵が描かれたフレームが用意されました。

  9. 2フレーム目の「円ボタン」を、赤マルで囲みなさい。
    楕円(だえん)ツール」を使って、「線の色」が赤で、「ぬり色」が無色の円を書き足すのです。(*1)

  10. 「タイムライン(時間割)」左側の「レイヤー1」を右クリック→「レイヤーを挿入」。
    これで「タイムライン」が2段重ねになりました。

  11. 2つの「レイヤー名」を書き直しなさい。
    「レイヤー1」が「ボタン」、「レイヤー2」が「スクリプト」です。

  12. 「ボタン」レイヤーを「ロック」しなさい。
  13. 「スクリプト」レイヤーの1フレーム目に、「止まれ(ストップ)!」と書き込みなさい。
    stop();
    
  14. 「ムービープレビュー」を試してご覧なさい。
    ボタンをクリックすると、赤マルが表示されるフリップ」が出来ています。

    →動作参照用白玉ファイル(11c.swf)

  15. 赤マル(2フレーム目)を表示させた後、再び「矢印(マウスカーソル)」を「円ボタン」に重ねてご覧なさい。
    矢印」が「指マーク(「この円はボタンですよ」という表示)」に変ります。
  16. 今作っているフリップは、全部で2フレームしかありません。
    ですから赤マル(2フレーム目)を表示させた後に、ステージ上にボタンがある状態は少々不自然です。
    教材を操作している人に、3フレーム目があるのではないか?」と誤解させてしまうからです。
  17. 「ムービープレビュー」を終了しなさい。
  18. これから赤マル(2フレーム目)を表示させた後、「指マーク」に変らないようにします。
    2フレーム目の「円ボタン」を、ボタンではない、ただの「円の絵」に変えるのです。(趣意説明)
  19. 「スクリプト」レイヤーを「ロック」しなさい。
  20. 「ボタン」レイヤーの「ロック」を解除しなさい。
  21. 「矢印ツール/選択ツール」で、2フレーム目の「円ボタン」をクリック。
  22. 「プロパティ」パネルの左端の欄を、「ボタン」から「グラフィック」に変更しなさい。
    今まで「ボタン」だった「属性(property)」を、強制的に「グラフィック」へと変更するのです。(*4)

  23. 「ムービープレビュー」を試してご覧なさい。
    赤マル(2フレーム目)を表示させた後は、「指マーク」に変りません。

    →動作参照用白玉ファイル(11d.swf)

  24. 「ムービープレビュー」を終了しなさい。
  25. ファイルを保存して、次のステップに進みなさい。
    ファイル名は"kadai11A.fla"としておきます。

*1:フリーハンドで赤マルを描くことも出来ますが、ここでは「楕円ツール」を使いました。(*2)(*3)

*2:念のために書いておきますが、「楕円ツール」で「真円」を描く方法は「Shift」キーです。
 「Shift」キーを押しながら「楕円ツール」を使うと、「真円(つぶれていない円)」を描くことができるのです。

*3:フリーハンドで描きたい場合は、「鉛筆ツール」や「ブラシツール」を使います。
 詳しくは前回講座(Flash使い方教室1)を参考にしてください。

*4:唐突な登場ですが、「プロパティ」パネルの新技です。
 要するに、「ボタン」から「ボタンとしての性質(属性)」を奪っている(封印している)わけです。(*5)

*5:「ステージ上のボタン」を強制的に「グラフィック」へ変更しても、「ライブラリの中のボタン」は「ボタン」のままです。

●ステップ3:本題「ドロップすると赤マルを表示するドラッグ&ドロップ」を作りなさい。

  1. これから「ドロップすると、赤マルが表示されるドラッグ&ドロップ」を作ってもらいます。(趣意説明)
  2. ステップ4の助走問題を作ることができた人にとっては、それほど難しい作業ではありません。
    これから学習する内容は、「ボタンをクリックすると、赤マルが表示されるフリップ」の応用だからです。
  3. "Flash"画面の左上を、「ファイル」→「新規作成」とクリック。
    新しいファイル(ステップ2で作った"kadai11A.fla"とは違うファイル)が用意されます。
  4. 楕円(だえん)ツール」を使って、ステージやや左上に円を書きなさい。
    面積はステージの10分の1程度、色や線の太さは特に問いません。

  5. 今描いた円を「ボタン」に変換しなさい。
    円の「ぬり色」をダブルクリック→そのまま右クリック→「シンボルに変換」です。
  6. シンボル名は分かりやすければ何でも良いのですが、ここでは「円ボタン」としておきます。

  7. 「円ボタン」に「ドラッグ&ドロップ」のスクリプトを書き込みなさい。
    on(press){
    	startDrag(this);
    }
    on(release){
    	stopDrag();
    }
    
  8. スクリプトを書き込んだ「円ボタン」を、「目に見えない魔力の壁(ムービークリップ)」で包みなさい。
    シンボル名は分かりやすければ何でも良いのですが、ここでは「円ドラッグ」としておきます。

  9. 「矢印ツール/選択ツール」で、ステージ上の「円ドラッグ」をダブルクリックしなさい。
    "Flash"が「ムービークリップ」の編集モードに切り替わります。(*1)

  10. これから「円ドラッグ(円ボタンを包んだムービークリップ)」のを、編集(改造)していきます。(趣意説明)
    編集(改造)と言っても、ステップ4とほぼ同じ作業なので簡単です。
  11. 「円ボタン」にスクリプトを書き足して、「次へボタン」として「」機能するようにしなさい。
    オン・リリース」のところに、「ネクスト・フレーム」を書き足すのです。
    on(press){
    	startDrag(this);
    }
    on(release){
    	stopDrag();
    	nextFrame();
    }
    
  12. 2枚目の用紙(フレーム)を用意して、「赤マルを付けた円ボタン」を描きます。(趣意説明)

  13. 「タイムライン(時間割)」の2フレーム目を右クリック→「キーフレームの挿入」。
    これで、1フレーム目と全く同じ絵が描かれたフレームが用意されました。

  14. 2フレーム目の「円ボタン」を、赤マルで囲みなさい。
    楕円(だえん)ツール」を使って、「線の色」が赤で、「ぬり色」が無色の円を書き足すのです。

  15. 「タイムライン(時間割)」左側の「レイヤー1」を右クリック→「レイヤーを挿入」。
    これで「タイムライン」が2段重ねになりました。

  16. 2つの「レイヤー名」を書き直しなさい。
    「レイヤー1」が「ボタン」、「レイヤー2」が「スクリプト」です。

  17. 「ボタン」レイヤーを「ロック」しなさい。
  18. 「スクリプト」レイヤーの1フレーム目に、「止まれ(ストップ)!」と書き込みなさい。
    stop();
    
  19. 「ムービープレビュー」を試してご覧なさい。
    「ドロップすると、赤マルが表示されるドラッグ&ドロップ」が出来ています。

    →動作参照用白玉ファイル(11e.swf)

  20. 「ムービープレビュー」を終了しなさい。
  21. 赤マルを表示させた後、「指マーク」に変らないようにします。
    2フレーム目の「円ボタン」を、ボタンではない、ただの「円の絵」に変えるのです。(趣意説明)
  22. 「矢印ツール/選択ツール」で、2フレーム目の「円ボタン」をクリック。
  23. 「プロパティ」パネルの左端の欄を、「ボタン」から「グラフィック」に変更しなさい。
    今まで「ボタン」だった「属性(property)」を、強制的に「グラフィック」へと変更するのです。

  24. 「ムービープレビュー」を試してご覧なさい。
    赤マル(2フレーム目)を表示させた後は、「指マーク」に変りません。
    「指マーク」に変らないということは、赤マルを表示させた後は「ドラッグ&ドロップ」が出来ないということでもあります。
    今回学習する技(ステップ1を参照のこと)
    (2)ドロップ時に、マルを表示させる技
    (4)ドロップ時に、ムービークリップを固める技(以後ドラッグ&ドロップを出来なくする技)

    →動作参照用白玉ファイル(11f.swf)

  25. 「ムービープレビュー」を終了しなさい。
  26. 「シーン1」をクリックしなさい。
    「ムービークリップ」編集モードから、通常モードに切り替わります。

  27. このステップでは「ムービークリップの中」に「フリップ」を作りました。
    言うならば、「フラッシュ作品の中」に「フラッシュ作品」を作るような作業です。
  28. このような「フラッシュ作品の中にフラッシュ作品を作る技」は、「ムービークリップ」の使い方の中でも最も重要な技の1つです。
  29. 上手く使いこなすと、様々な応用が利いて便利な技なのですが、作業内容を上手くイメージできないかもしれません。(*2)
  30. いずれまた、機会を見つけて学習したいと考えています。(*3)
  31. "kadai11B.fla"のファイル名で、ファイルを保存しなさい。
  32. 長くなって来たので、今回の課題はここまでです。

*1:厳密に言えば、「ムービークリップ編集モード」というより「シンボル編集モード」です。
 「シンボル編集モード」についての詳細は、前回講座(Flash使い方教室1)・課題10を参照してください。

*2:前回講座(Flash使い方教室1)でも、上手く教えることが出来ませんでした。
 全ての課題をクリアした受講生の方でも、「ムービークリップ」の実態を完全には理解できていないと思います。

*3:分量が上手く収まれば、後半の課題に盛り込みます。
 ……無理なら「Flash使い方教室3 〜ムービークリップ編〜」を考える必要がありますね。