October 31, 2005
InteractiveObject クラス
DisplayObject クラスのサブクラスとして Bitmap と Shape を紹介しましたが、次は、もう一つのたぶん一番良く参照されるサブクラスです。
InteractiveObject クラス
DisplayObject クラスにユーザーインタラクションのためのイベント等を追加した抽象クラスが InteractionObject クラス(livedocs@lab)です。概念的には、画面に表示されて、マウスやキーボード入力に反応するオブジェクトをモデル化したものと考えることができるでしょう。(ということは、Bitmap や Shape は、ユーザーが直接操作できないわけです。) InteractiveObject の直接のサブクラスには SimpleButton や TextField などがあります。この InteractionObject クラス(のサブクラス)はフォーカスの制御の単位にもなります。
これにより、AS1/2 では何種類もあったユーザーイベントの扱いが一つのクラスに集約され、すっきりと統一されました。AS2 の Key や Mouse といったグローバルオブジェクトによるユーザーイベントのハンドリングは AS3 にはありません。
イベントモデル自体も、新しくなっています。AS3 の新しいイベントモデルについては、重要なトピックですので別の機会に改めて詳しく説明したいと思っています。今回はとりあえず主なイベントの種類だけざっと触れておきます。
InteractiveObject がサポートするイベントは、AS2 では MovieClip や Button が持っていたイベントを引き継ぐものや、
mouseDown : マウスボタンを押した mouseUp : マウスボタンを離した keyDown : キーを押した keyUp : キーを離した focusIn : オブジェクトがフォーカスされた focusOut : オブジェクトがフォーカスを失くした
V2 UIComponent のイベントと同じもの、または新規追加(ダブルクリックなど)されたものがあります。
click : マウスがクリックされた doubleClick : マウスがダブルクリックされた keyFocusChange : キー操作でフォーカスを変えようとした
また、InteractiveOjbect には、右クリックをしたときに表示されるコンテキストメニューを InteractiveObject.contextMenu プロパティに設定することが出来ます。ただ、相変わらずトップレベルのオブジェクトにしか有効ではないようです。
Posted by ackie at 06:17 PM | Comments (0)
October 28, 2005
Bitmap クラスと Shape クラス
Bitmap クラス
Bitmap クラスはビットマップ画像を表示するのに使用されます。(livedocs@lab) Bitmap クラスの役割は表示位置やフィルターの種類の指定などの表示状態を指定することで、実際のビットマップデータは Bitmap.bitmapData プロパティから参照される BitmapData クラスのインスタンスが持ちます。Bitmap はあくまで容れ物ということです。
BitmapData クラスについては Flash8 から追加されたものと基本的に同じです。(livedocs@lab) 描画オブジェクトのスナップショットを取ったり、様々な加工を施すことができます。AS1/2 では、MovieClip に attach して使用していましたが、AS3 では Bitmap が MovieClip の代わりをします。
BitmapData のインスタンスは複数の Bitmap オブジェクトから共有できるため、画面にたくさんのビットマップ画像を表示しても、メモリを効率的に使用できるようになっています。
Shape クラス
Shape クラス(livedocs@lab)はベクターグラフィックの表示が担当です。Bitmap クラスと同じように、実際のデータは Shape.graphics というプロパティに持ちます。このプロパティのデータ型は Graphics クラスです。
Graphic クラス(livedocs@lab)は以下のように描画用の API を持っています。これらの API は、AS1/2 では MovieClip のメソッドとして実装されていましたが、AS3 では専用のクラスが用意されました。
public moveTo(x:Number, y:Number) : Void public lineTo(x:Number, y:Number) : Void public beginFill(color:uint, alpha:Numer = 1.0) : Void public clear() : Void
また、新しく便利な API もいろいろと追加されています。
public drawRect(x:Number, y:Number, width:Number, height:Number) : Void public drawCircle(x:Number, y:Number, radius:Number) : Void
Posted by ackie at 07:24 PM | Comments (0)
October 27, 2005
DisplayObject クラス
ActionScript3 では、API が大幅にリパッケージングされています。これは、描画機能が集約された重たい MovieClip への依存からの脱却が目的の一つで、描画関連の機能にも新しい考え方やクラスが導入されています。AS3 を使うにはこれらのクラスを理解しなくてはなりません。そこで、AS3 の新しいモデルについて、少し説明をしたいと思います。まずは少し抽象的な話から始めます。
注:以下の内容は、パブリックアルファ版に基づくもので、製品版までには変更されることがあります。
DisplayObjct クラス
DisplayObject は ActionScript3 から新しく導入されたクラスで、画面に表示される全てのオブジェクトのベースとなる重要なクラスです。プロパティを見ると、以下のような、表示の様子を指定する基本的なプロパティを持っていることが分かります。(livedocs@lab)
x // インスタンスのX座標 y // インスタンスのY座標 height // インスタンスの高さ width // インスタンスの幅 alpha // インスタンスのアルファ値
ActionScript1/2 では、これらのプロパティは MovieClip 等に属していましたが、AS3 では DisplayObject のプロパティになっています。また、名前から '_' (アンダースコア)がなくなっていることにも注意してください。
DisplayObject のプロパティには、Flash8 から追加された高度な表現を指定するものもあります。
scale9Grid // インスタンスのX座標 blendMode // ブレンドモードを指定 filters // フィルターオブジェクトの配列 cacheAsBitmap // ビットマップ形式で表示データを保持するフラグ
このように、DisplayObject は表現を指定するのに必要な機能が集められたクラスです。一方インタラクションを提供する機能は含まれていません。また、抽象クラスなので直接インスタンスかすることは出来ません。
DisplayObject の主なサブクラスとして BitMap や Shape があります。それぞれ
- Bitmap : ビットマップデータを表示する
- Shape : ベクターグラフィックスを表示する
という目的で使用されます。これらのクラスは MovieClip より軽量であるため、描画処理の高速化に貢献することが期待できます。
Posted by ackie at 08:47 PM | Comments (0)
October 26, 2005
日本語?ブログ始???
先日行?れ? MAX2005 ?????Macromedia Lab ?アナウンス?れ???。?れ??開発?早?段階?ら製?情報を公開?る????ユーザー?ら?フィード?ックを?り入れ??????図?始?られ?新??試???。?時点???残念??ら??英語?情報???り??ん???日本語?も情報を??供???るよ???? Blog を始???。???他?も日本語??情報??供手段?検討?れ???????公開???る状???り次第?知ら??????。
主??り扱?予定?内容??10月7日?プレスリリース?発表?れ? 2006年上?期?発売開始予定?次世代? Flash Platform ??。具体的???
- Flash Player8.5 ? ActionScript3
- FlexBuilder2 : Eclipse ベース?新??開発?れ?IDE
- Flex Enterprise Services 2 : データ連?や自動テストを支??るサー?ーモジュール
???製???。
特??Flex 2 ??ライセンスモデル?変更?より?FlexBuilder2 を購入?る??? Web サー?ー?通信?る Flex アプリケーションをデプロイ???るよ???り??。従??サー?ーライセンス?比???用?や??モデル?変更?れ???????れを機会?是?パブリックアルファ版をダウンロード?????????。 Flex Builder 2 ???????使用???るスタンドアローン版??Eclipse を使???るユーザ?????Plug-in 版?2??用??れ????。Eclipse を使用???????方??スタンドアローン版を?勧????。
????ActionScript3 ?????解説?ら始?る予定??。
Posted by ackie at 10:24 PM | Comments (2)