サイトトップ

Director Flash 書籍 業務内容 プロフィール

OS X Trend Seminar
Flash MX 2004で変わるスクリプティング

1. メニューとインターフェイス
よく使われるフレーム操作のコマンドが、[編集]と[挿入]、[修正]の各メニューに離散してしまった(図001)。ショートカットキーはMXと変わらないので、慣れたユーザなら問題ない。

図001■離散したフレーム操作のコマンド

[フレームの削除]は[編集]メニュー


[フレーム]や[キーフレーム]、[空白キーフレーム]挿入は[挿入]メニュー


[キーフレームに変換]と[空白キーフレームに変換]は[修正]メニュー。[キーフレームを削除]はなぜ[フレームの削除]と一緒でない?

「シーン」や「シンボルの編集」を切替える「編集バー」の位置が、Flash 5と同じタイムライン上部に戻ってしまった(図002)。

図002■タイムライン上部に戻った編集バー

しかし、編集バーを[command](Windowsは[Alt])+[shift]ダブルクリックで、タイムライン下に移動できる(図003)。

図003■タイムライン下に移動した編集バー

また、フレームやインスタンスを選択して表示するコンテクスト/ショートカットメニューから、[アクション]がなくなった(図004)。ショートカットは[F9](ただし、Pantherでは注意が必要)、フレームの場合は[option]/[Alt]+ダブルクリックでもよい。

図004■コンテクスト/ショートカットメニューから[アクション]が消えた

また、オンラインヘルプがアプリケーションに内臓された(HTMLではない)。

2. ビヘイビア
スクリプトのライブラリ。目的の処理を選択して、パラメータを設定する(図005)。

図005■ビヘイビア[Web]>[Webページへ移動]を選択してパラメータを設定

2. MovieClipLoaderクラス
外部SWFまたはJPEGファイルのロード中の経過を確認したり、読込み待ちの処理ができる。

MXまでは、onClipEvent (data)ハンドラで、ロード済みバイト数をチェックして読込みを待つのが普通だった(スクリプト1。なお、[MovieClip.loadMovieで外部ファイルを読込む]参照)。

スクリプト1■MXまでの外部ファイルロード待ち処理
// MovieClip: 外部ファイルを読込むターゲット
// MovieClipアクション
onClipEvent (data) {
   if (this.getBytesTotal()>0 && this.getBytesLoaded()>=this.getBytesTotal()) {
     // ロード完了時の処理
   }
}

MovieClipLoaderクラスを使った外部SWFファイルのロード処理(スクリプト2)。ロードしたSWFを指定フレームから再生するサンプルSWF/FLAファイル(StaffIt圧縮:約343KB)を参照。

スクリプト2■MX 2004のMovieClipLoaderを使用した外部ファイルロード待ち処理
*MovieClipLoaderインスタンスに直接イベントハンドラを定義するスタイルは、サポートされないこととなりました。そのため、リスナーオブジェクトを作成するスタイルに修正しました。(2004.6.23)
// タイムライン: ターゲットのMovieClipインスタンスmy_mcを配置
// フレームアクション
my_mcl = new MovieClipLoader();  // MovieClipLoaderインスタンスの生成
oListener = new Object();  // リスナーオブジェクトの作成
oListener.onLoadInit = function() {
  // ロードしたSWFの第1フレームでの初期化処理
};
my_mcl.addListener(oListener);  // リスナーに登録
// 外部SWFファイル"test.swf"をインスタンスmy_mcにロード
my_mcl.loadClip("test.swf", my_mc);

コンポーネントのスクリプティングも、また変わった。コンポーネントインスタンスに、イベントハンドラアクションを設定する(スクリプト3)。

スクリプト3■ComboBoxの選択により呼出されるイベントハンドラを設定
on (change) {  // changeはコンポーネントに用意されたイベント
  // 選択された項目のラベルを変数に設定
  selected_str = this.selectedItem.label;
  // その他の選択時の処理
}

3. ActionScriptで注意すべき変更点
ActionScriptの仕様がECMA-262第4版に準拠した。[Flash MX 2004でハマりがちな問題点]参照。

4. Accordionコンポーネント(Professional)
コンポーネントのパラメータに、ラベルと名前、および表示するムービークリップシンボルを設定する(図006)。シンボルは、リンケージ[識別子]で指定する。サンプルSWF/FLAファイル(StaffIt圧縮:約60KB)を参照。

図006■Accordionコンポーネントのパラメータに必要な項目を設定

5. Dataコンポーネント(Professional)
コンポーネントを使ってXMLデータを読込み、必要なデータを取出して表示する方法については、「XMLConnectorとデータバインディング」を参照(サンプルムービーも含む)。

Flash MX 2004 Professionalを使ってGoogle検索を行うサンプルが、Macromedia Flash Developer Centerに[Building a Google Search Application with Macromedia Flash MX Professional]という記事の中で紹介されている。

[注記]Google検索のサンプルを試すには、Google Web APIのライセンスキー(license key)を取得して、WebServiceConnectorコンポーネントインスタンスに設定する必要がある。設定方法は、以下のとおり。

[1]ステージ左側の[スクリーンアウトラインペイン]で、スクリーンfrmSearchをクリックして、ステージの右外側上部に配置されたWebServiceConnectorインスタンスGoogleSearchを選択する。

[2][コンポーネントインスペクタ]の[バインディング]タブを表示して、バインディングリストからparams:keyを選択したら、パネル下側のバインディング属性ペイン内のプロパティ[bound to]に取得したライセンスキーを入力する。

 

6. ActionScript 2.0(スクリプトエディタはProfessionalのみ)
ActionScript 2.0は、1.0と併存する。Flash MX 2004 ProfessionalとStandardの位置づけと同様。機能的に便利だとおもう人が、選択して使えばよい(ただし、混在した記述は避ける。コンポーネントの2.0版と1.0版は、同一ムービー内で同時に使えないと思った方が安全)。

また、ActionScript 2.0は、現状ではSWF書出し時に1.0に変換されてコンパイルされる(JavaやC++と動作の異なる場合があるのは、その理由によることが少なくない)。

ActionScript 2.0でクラス定義ファイルを作成し、FLAムービーと同階層に保存する(スクリプト4)。サンプルのFLAおよびASファイル(Zip圧縮:約8KB)を参照。

スクリプト4■ActionScript 2.0クラス定義ファイル
// ファイル: MyMovieClip.as
// クラスMyMovieClip定義
class MyMovieClip extends MovieClip {
  // プロパティ宣言
  var targetX:Number;
  var decelaration:Number = 0.2;
  // コンストラクタ定義
  function MyMovieClip() {
  }
  // メソッドeaseOut定義
  function easeOut(nTargetX:Number, nDecelaration:Number):Void {
    targetX = nTargetX;
    if (typeof nDecelaration == "number") {
      decelaration = nDecelaration;
    }
    this.onEnterFrame = function() {
      _x += (targetX-_x)*decelaration;
    };
  }
}

ムービークリップシンボルの[シンボルプロパティ]ダイアログボックスの[AS 2.0クラス]にクラス名を入力して、シンボルとクラスとの関連づけができる(図007)。'Object.registerClass'メソッドは不要になる。

図007■[シンボルプロパティ]の[AS 2.0クラス]にクラス名を設定

ActionScript 2.0を使ったクラス定義について、詳しくは「オブジェクト指向プログラミング」またはオンラインヘルプ「ActionScriptリファレンスガイド」を参照。

_____

作成者: 野中文雄
作成日: 2003年12月13日


Copyright © 2001-2003 Fumio Nonaka.  All rights reserved.