スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【AS3.0】行列変換[matrix]のお勉強

▼野中さんのこのページの解説がすごく分かりやすかった。
http://www.adobe.com/jp/devnet/flash/articles/matrix_class.html#01

理屈が分かったら理屈自体を一生懸命覚えるより
以下のような公式として覚えてしまった方が体で覚えやすそう。

あくまでも個人的に記憶するための考え方なので
あまりオススメはしませんが…。
でもこれなら覚えやすいかなと思いました。

a: 水平方向の伸縮率 = 変換後の幅/デフォルトの幅  ←変換後の幅=デフォルトの形で右上のx座標
b: 垂直方向の傾斜率 = 垂直方向の傾斜/デフォルトの幅 ←垂直方向の傾斜=デフォルトの形で右上のy座標
c: 水平方向の傾斜率 = 水平方向の傾斜/デフォルトの高さ  ←垂直方向の傾斜=デフォルトの形で左下のx座標
d: 垂直方向の伸縮率 = 変換後の高さ/デフォルトの高さ ←垂直方向の傾斜=デフォルトの形で左下のy座標
tx: 水平方向の移動ピクセル数 ←左上のx座標
ty: 垂直方向の移動ピクセル数 ←左上のy座標

よって

a: 水平方向の伸縮率 =デフォルトの形で右上のx座標/デフォルトの幅
b: 垂直方向の傾斜率 = デフォルトの形で右上のy座標/デフォルトの幅
c: 水平方向の傾斜率 = デフォルトの形で左下のx座標/デフォルトの高さ
d: 垂直方向の伸縮率 = デフォルトの形で左下のy座標/デフォルトの高さ
tx: 水平方向の移動ピクセル数 ←左上のx座標
ty: 垂直方向の移動ピクセル数 ←左上のy座標

そのほかメソッドなど詳細
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/geom/Matrix.html

【AS3.0】ブレンドモード(blendMode)の一覧

http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/display/DisplayObject.html#blendMode

これ時間あるときに全部実際に実験した方がよさそうですね。

【AS3.0】set get アクセサってなんじゃらほい

カプセル化やカスタムイベントのお勉強をしていると
funciton set hoge()やらfunciton get hoge()やら出てくる。

ちゃんと使いこなせるようにきちんとお勉強しておこうってことで
調べたことのメモ。

setやらgetやらはアクセサメソッドと呼ばれるもので、
オリジナルのプロパティ(関数)を
作るときに、外部のクラスから呼び出したときに読み取り専用のプロパティなのか、
変更可能なプロパティなのかを宣言するためのものであるらしい。

setやgetを入れることで、本来参照出来ないプロパティ(関数)に
これを宣言することで外部からプロパティとして参照したり書き換えたりする処理を
実行できるようになる、と。


・読み取り専用のプロパティ(関数) → getアクセサメソッドを使用
function get hoge(){};
・変更可能なプロパティ(関数) → setアクセサメソッドを使用
function set hoge(){};

なるほどなるほど。
たしかに予約されたプロパティ(ビルトインクラスっつーやつ)にも参照専用と、
変更も参照も可能なものと両方可能なものがあるもんなー。

xとかyとかは変更も参照も可能、テキストフィールドのcaretIndexなんかは読み取り専用といった具合。

hoge="なにか値を渡す=変更可能なプロパティ" ってかけば、getと書かれた関数が呼び出され、
trace(hoge)と書けばsetと書かれた関数が呼び出されるっと。

つまり、xやyやalphaがビルトインクラスではなく
カスタムクラスだとするとsetとget両方が定義されていて、
caretIndexのカスタムクラスがあるとするとgetのみ定義されていると。

なんだ、大したことじゃないけど知らないと
ものっそ難しそうに見えるお話でした。


▼(おまけ)カプセル化について学ぶならここ(要はサブルーチン化みたいなことかな。)
http://itpro.nikkeibp.co.jp/article/COLUMN/20070705/276814/

【AS3.0】AS2のreleaseOutsideに該当する処理

AS2でいうところのreleaseOutside、つまりボタンをクリックした後リリースしたとき、
マウスカーソルがボタンの上にないときの処理方法がAS3だと大きく異なる。


http://www.adobe.com/jp/devnet/actionscript/articles/event_handling_as3_05.html



1. 目的のターゲットのmouse downを検出します。
2. mouse downイベントハンドラで、mouse upのstageにリスナーを追加します。
3. stageのmouse upリスナーで、Eventオブジェクトのtargetプロパティをチェックして、ターゲットがクリックされた元のオブジェクトであるかどうかを確認します。元のオブジェクトである場合は、元のターゲットでマウスが解放されています。元のオブジェクトでない場合は、オブジェクトの外でマウスが解放されています。
4. mouse upリスナー内のstageリスナーを削除します。

stageではすべてのマウスイベントをキャプチャするので、すべてのmouse upイベントがstageに受け取られると見なすことができます。mouse upリスナーをターゲットオブジェクトのmouse downリスナー内のstageに追加することで、次にマウスが解放されたとき、クリックされた元のオブジェクトの上で行われたmouse upか、オブジェクトの外で行われたmouse upか(mouse up outsideイベント)がわかります。
Flash CS3 Professional ActionScript 3.0プレビューの使用

1. 例2のコードサンプルを開きます。
2.

フレーム1のタイムラインスクリプトを次のスクリプトに置き換えます。

function boxDown(event:MouseEvent):void {
trace("box down");
stage.addEventListener(MouseEvent.MOUSE_UP, boxUpOutside);
}

function boxUpOutside(event:MouseEvent):void {
if (event.target != box) {
trace("box up outside");
}
stage.removeEventListener(MouseEvent.MOUSE_UP, boxUpOutside);
}

box.addEventListener(MouseEvent.MOUSE_DOWN, boxDown);

※理屈は分かるが、普段から意識できるかというと慣れるまでは難しそうなので、
機械的にMOUSE_DOWNしたときにstage上にMOUSE_UPプロパティで
実際にマウスがアップされたときにそのターゲットをチェックするイベントを登録し、
振り分ける、と覚えておくといいのかしらん。

【AS3.0】イベントのキャプチャ段階 ターゲット段階 バブリング段階について

なんとなく流してきた「キャプチャ段階」「ターゲット段階」「パブリング段階」について
はっきりと理解を深めたいと思い調べてみた。

http://www.adobe.com/jp/devnet/actionscript/articles/event_handling_as3_03.html

イベントの伝達には、3つの「段階」があります(図2を参照)。各段階は、イベントに関連する表示オブジェクトを介してFlashでイベントが処理される際の、イベントの経路または場所を表します。イベントの3つの段階は、キャプチャ、ターゲットおよびバブリングです。

キャプチャ段階:イベントの発生元のターゲットオブジェクトの親オブジェクトを表します。伝達されるイベントは、最上位の親(stage)から始まり、発生元のターゲットに達するまで、表示オブジェクト階層を下っていきます。

ターゲット段階:ターゲット段階は、イベントがターゲットオブジェクトまたはイベントの発生元オブジェクトにある段階です。キャプチャ段階やバブリング段階とは異なり、この段階は、常に1つしかないターゲットオブジェクトに関連します。

バブリング段階:イベントが「バブルする」と、キャプチャ段階とは逆の経路をたどり、最上位の親(stage)に達するまで、ターゲットオブジェクトの親階層を上っていきます。

ただし、伝達されるイベントがすべて各段階を通過するわけではなく、すべてのイベントが伝達されるとも限りません。例えば、Stageオブジェクトがイベントを受け取った場合は、キャプチャ段階やバブリング段階が発生するために必要な、stageより下位のオブジェクトが存在しないので、ターゲット段階のみが発生します。
ワンコウォッチ
プロフィール

AGOSO

Author:AGOSO
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
ワンコウォッチ[ベリー・レッド]
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。