as & root (AS3)
前回のエントリーで書いた疑問点を調べてたら結構いろいろ知らないことが出てきたので
宿題だけで1エントリー使うことにした。
as演算子とDisplayObject.rootについてです。
イベントモデル (AS3)
いまだにtraceでパスの取り方がわからんw
でも、AS3ではtraceするとオブジェクトの中身を詳細に書き出してくれることはわかった。
で、[MouseEvent type="click" bubbles=true cancelable=false eventPhase=2...]とか出力されるんだけど、bubbles? cancelable? eventPhase?って感じだったのでこいつらについて調べてみた。
どうやらイベントオブジェクトと関係があるらしい。以下詳しくメモ。
表示リスト (AS3)
AS3やってるとエラーがばんばん出てきてうける。
強制変換してるよー強制変換してるよー強制変換してるよー...orz
このエントリーは表示オブジェクトとか表示オブジェクトコンテナについて。
パスを調べたい (AS3)
自分なりにパスを調べる方法を考えてみた。
それにしても、このblog見にくいな...リニューアルしたくなってきた。
AS3で卒研手伝いつつ、友達のサイトを作ってAS3でフォトビュアー作った後にリニュしたいなー。目標は来年4月にロンチで!
変数と定数 (AS3)
うーん、基本から地道にやってるけど...いつ終わるのか心配だw
とりあえず、メモメモ。
【変数と定数】
・変数はvar、定数はconstで宣言。
・定数は大文字だけを使い、宣言時に一度しか値を設定できない。
・ただしオブジェクトを定数とした場合は、そのオブジェクトに対する操作は可能
(定数にした配列にpushするとか)
・標準クラスで定義してある定数を静的パブリック定数と呼ぶ。MathクラスやKeyboardクラスなど。(あぁ!こいつら定数だから大文字だったのか)
・改行コードなどの通常では表記できない文字列は、\を使う。
関数定義とメソッド定義 (AS3)
基礎をぶっとばして来たから、知らない事多過ぎワロス...orz
ていうか関数定義とメソッド定義って意味違うんですね、混同してた。
【フレームアクションの関数定義とメソッド定義】
・関数定義はreturnで値を返す。メソッド定義は返さない。
・AS3からは、functionを定義してあるキーフレームを再生していなくても利用できる。
・AS3から引数の個数も一致していないとエラーになる。
・引数の個数が決まっていないときは、...restを使うことで個数を決めなくてもできる。
(restは配列で、restの部分は好きな変数名を付けられる)
(例)
------------------------------------------------------------------------------------------------------------------
function test(...rest):Number {
var restNum:Number = rest.length;
return restNum;
}
var testNum:Number = test(1,2,3,4,5);
trace(testNum);//5
------------------------------------------------------------------------------------------------------------------
データ型 (AS3)
ここちゃんとやっとかないとエラーばっか出るよね。
「AS3.0 アニメーション」買ったから早くそっちやりたい。
でもまぁ焦らずやります...キソキソ。
演算子 (AS3)
うぁー盛大に遅刻した。反省。
昨日のプレゼンで緊張とかして疲れてたみたい。
起きてびっくりだった。
【演算子】
・演算の対象となる値や変数はオペランドと呼ぶ。演算子はオペレータ。
・ビット単位演算子がいみふ。
・?:は「条件式 ? 値1 : 値2」という風に使う。条件式がtrueなら値1、falseなら値2を返す。
・::はnamespaceで定義した名前空間を識別するための演算子。名前空間とはアクセス範囲を示す名前らしい。標準で定義されているのは、internal, private, protected, public。名前空間を利用すると。1つのクラス内での同名プロパティやメソッドの衝突を避けれる。
※つまりオリジナルprotectedを作れるってことか。
・[]は配列だけでなくオブジェクトのプロパティにアクセスする場合にも利用する。
・演算子の結合性は、代入演算子(=や+=など)を除くすべてが左結合。つまり、左にある演算子が右にある演算子よりも先に処理される。
・代入演算子や三項演算子(?:)は右結合。
繰り返しと条件分岐 (AS3)
今日サム!
明日はとうとうAPMT3ですねー。楽しみ。
起きれるか心配だけど。
【繰り返し】
・for..inとfor..each..inの違い。for..inは配列のインデックス番号や配列オブジェクトのプロパティ名を取り出す。for..each..inは配列や配列オブジェクトの値を取り出す。
※疑問なんだが、for..inで取り出されるインデックス番号はStringなんだけど
------------------------------------------------------------------------------------------------------------------
var vlist:Array=["a","b","c","d","e","f"];
var no:String;
for (no in vlist) {
var test:String = vlist[no];
trace(no,test);
}
------------------------------------------------------------------------------------------------------------------
でも普通に配列の値を表示してくれる。
vlist["3"];とかでもtraceするとちゃんと値が返ってくる...。どうゆうこと?
myArray[i]のiは0 以上の整数インデックスのはずなんだけど。
・continueは繰り返し中のスクリプトを残してスキップできる。breakは中断して繰り返し処理を抜ける。
【条件分岐】
・switch..caseってあんまり使ったことないけど、便利っぽい。値に応じてスクリプトを分岐したい場合に使える。
・caseに何も当てはまらなかった場合はdefaultで指定したステートメントが実行される。省略もできる。
・caseの最後にbreakを実行しないと、次のcaseの処理に続くが、値のチェックをせずに無条件で処理部分だけが実行される。これをうまく利用すれば論理和の処理が行える。
・?:は入れ子(ネスティング)で書くと複雑な条件分岐も可能。
配列の操作 (AS3)
LogicoolのMX™ Revolution昨日届いて、今使ってる。いいね、いいね!
これで新卒4人くらいこのマウスを使ってるんじゃないだろうか。
次はアップルキーボードかなー。正月の飛行機代とか、AS3本でかなり金欠ですけど。貯金できない。
ということで、やっとCHAPTER3に突入しました。配列は奥が深いですね。AS3からArrayクラスにはsome()そかfilter()とかforEach()とか新しいメソッドも加わって、使いこなせれば便利そうです。使いこなせれば...。
以下メモ。
PaperVision3D
PaperVision3Dを触ってみた。なんていうか...すごいね、楽しい。簡単に3Dが作れてインタラクションもすぐにできる。MaxでPaperVision3Dの講演を聞いたおかげで、思ったより簡単に理解できたのが良かった。
あんまりライブラリに頼るのは良くないのかもしれないけど、AS3に慣れる用に使うとかなり良さげ。一緒にtweenerも触ってみるか。
基礎勉強するだけじゃ飽きるけど、PV3Dとか触るとテンション上がるね。
PV3Dで遊ぶ
座標 (AS3)
昨日、家のMacにSafari3入れたら、FlashPlayerが9になってくれなくて寝るの遅くなった。ネムス。
Flash Player.pluginを全部削除して再度インストールしたら直ったよ。Safari3早いのかな?たまにフォントが明朝体になってるのがキモイ。
で、AS3的な座標なわけですが、Pointクラスがいろいろ使えそうでいいっすね。
以下詳細。
領域 (AS3)
・Graphicsクラスを弄ってて思った事
ASで作った円とか長方形の基準点はデフォで左上だけど、中心にしたい場合はどうすればいいんだろう?
・解答
親インスタンスの基準点に子インスタンスの中心点を配置してあげて、親インスタンスを操作してあげる方法があるよな...。
っていうか、インスタンス作る時に
mySprite.graphics.drawRect(-50,-50,100,100);
ってしてあげればいいじゃんねwばかw
ということで、以下領域についてメモメモ。
幾何学の基礎 (AS3)
ゲーム開発のための数学・物理学入門でやっと第2章の「幾何学の基礎」に入りました。
以下、気づき。
XMLの操作 (AS3)
ストリングの操作と正規表現は流し読みで終わらせることにする。なにができるかわかってればいいや。正規表現がなんなのかわかったからよしとしよう。
それにしても、長い正規表現はカオスだ...。解読するのが嫌になる。どうしても使わないといけなくなった時に頑張って覚えよう...。
ということで、XML。これは使うからメモメモ。それにしても使いやすくなったな。XML演算子で直感的にアクセスできるのがイイ。
円による衝突判定 (AS3)
AS3のhitTestObject()は表示オッブジェクト同士の衝突を調べるメソッドですが、表示オブジェクトの境界ボックスによって衝突を判定します。これは、図形が円であっても矩形領域で重なりを判断することになります。
では、円形の重なりを判定するにはどうすれば良いでしょうか?今回はそのプログラムをAS3のカスタムクラスで書く事にします。
カスタムクラスとは (AS3)
今まで、クラスのこと全然わかってませんでした。staticってどんな時に使うんだよって思ってたwなんか取っ付きにくい高尚な変数って感じw
あと、AS3からクラスに書かないといけないpackageの意味がやっとわかった。もっとこってり難しいのかと思ったらあっさり簡単なことでした。
そんな超基礎な話は以下。
属性とアクセス制限 (AS3)
2008年ですねー。
いろいろと目標を立てました!これから3ヶ月間は続けていけるといーなーって感じです。
AS3も地道に勉強していきますよ。
以下、属性とアクセス制限についてのメモ。
Colin Moock AS3
昨日は【Adobe Presents コリン・ムックの「今から始めるActionScript 3.0 - WORLD WIDE TOUR 」】に午前中だけ参加しました。
午前中だけだったので基礎的なことしか聞くことができず、しかもほとんど本で勉強した知識ばかりでした。が、コリンさんの話はわかりやすく良い復習になりました。
特に、privateやinternal, publicをどう使い分けるのかという問題で、例えを使って上手く説明しており、目から鱗的な感じでかなりその辺のもやもやが吹き飛びました。
ありがとーコリン先生。
それにしても、後半参加できなかったのが悔やまれる...Adobe様、どうか講義のムービーを流してください。訳付きでw
以下メモ。
クラス継承とドキュメントクラス (AS3)
やーーーっとクラス篇が終わったー。
このSectionは継承の仕方と、スーパークラスを初期化するsuper()、オーバーライドのやり方、継承されないようにするクラス属性finalを習った。
AS3から新しく追加されたドキュメントクラスに関しては何の意味があるの?と思ったのでちょっと調べてみた。ついでに、クラスに関してももう少し詳しく調べた。
やっぱりAdobeのhelpが一番詳細に書いてある。でもビギナーには取っ付きにくいと思う。じっくり読まないと理解できないよ...しかも眠くなるw
【参照サイト】
シンボルとドキュメントクラスの使用
・ドキュメントクラスで書く利点から使用方法まで詳しく説明してあります。
クラスの設計戦略
・ちょっと意味はわかりにくいけど、クラスを設計するさいのヒントにはなる?
継承
・これを全部読めば継承については完璧。でも、かなり読みにくい...。
updateAfterEventメソッド (AS3)
AS3のupdateAfterEvent()をなぜか勘違いしてたのでメモ。
updateAfterEventメソッドはObjectクラスのメソッドかと思ってたけど、Eventクラスのメソッドでした。正確にはEventクラスを継承しているTimerEvent、KeyboardEvent、MouseEventクラスのメソッド。
つまり、登録したイベントオブジェクトだけをレンダリングするんじゃなくて、イベントが終わった時に変更されている表示オブジェクト全てをレンダリングするってことらしい。
いま、EventクラスのとこやってるけどFlashのヘルプの「ActionScript 3.0 のプログラミング > イベントの処理 」はじっくり読んでおかないとなーと思った。
AS3 Site
桑沢デザイン研究所、基礎造形専攻修了制作展のサイトを公開しました。
AS3で制作した初めてのサイトです。
まだ、ティザーの段階なのでほとんどコンテンツがありませんが、これから展示作品の紹介ページなどを作る予定です。
このサイトはボランティアで制作したもので、サーバーも僕のを使っています。
好きにして良いということだったので、AS3,PV3D,Tweenerなどを使い、本当に好きなようにデザインからFlashまでやらせて頂きました。
本当はもっとPV3Dでグリグリ作りたかったのですが...僕のレベルではかなり無理でしたw
PV3Dのクラスをちゃんと理解して、継承によってカスタムできるくらいのレベルじゃないとPV3Dでのサイト制作は難しいと思います。
AS3もかなり苦戦しましたが、リリースから1年以上たってるだけあってネットの情報が豊富で助かりました。MouseEventと読み込んだswfのstageへの参照は特にはまったとこです。
でも、やっぱりAS3の方が僕は好き。AS2より厳格でちゃんと統一されてるから使いやすいし、理解しやすい。もっと、AS3でいろいろやってみたくなりました。
とりあえず、PV3Dの発表資料作りから...。
粒子系ライブラリ (AS3)
最近なんだかんだ、あんだかんだ、うんだかんだで更新できてないけど
とりあえずメモ。
AS3の粒子系ライブラリらしいParticle System Ver0.9.4が最近でたっぽい。
開発者はRichard Lord 氏。
粒子使ってごにょごにょするの好きなので、ちょっと触ってみたい...
katamariのサイトはいいなー。
katamariでも使っているらしいProgressionも気になるところ。
ぎゃふん
vectorvision in PV3D
Papervision3Dでベクターデータやテキストを簡単に表示させることができるライブラリ、vectorvision。
こんなのあったのかー、知らんかった。メモメモ。
AS3で運動量の保存
とりあえず、ここまでの集大成としてうp。
円は大きさに比例した質量があり、それが速度に影響を与えているので、
大きいほど速度変化が鈍く、軽いほど軽快に動きます。


