2008年12月11日木曜日

Function.apply と Function.call

applyは_parentよりましかな、というなにか。他の人に処理のカーソルを渡したい、みたいな。
スコープの人(そのfunctionをメンバとして持つ人)、呼び出すタイミング、実際の処理をそれぞれ別々に書ける。
好きなタイミングで
(実際の処理を定義してあるfunctionオブジェクト).apply(スコープの人, パラメータ);
ってすればいい。

applyもそうだけど、callメソッドも変わってる!
自分のメンバ変数にあるクラスで、そのクラスの中で新しいメソッドを定義したくても手が出せないとき、
なんかに良さそう。
extendsできないときとか?そんな時ってあるの?

com.xfactorstudio.xml.xpath

For more info about this library:
http://osflash.org/xpath4as2

http://www.trick7.com/blog/2006/09/28-092340.php

・サンプルを動かしてみた
サンプル用のクラスを作ってBaseクラスから呼んでみたところ、
XMLの読み込みがBaseクラスの処理と別スレッドで進むことがわかった。
ので、XMLから読み込んだ値を渡す処理はXML.onLoadの中で書く必要がある。

Flash 素敵サイト

Flash関連ウォッチするのに良さそう。
http://www.link-log.net/archives/flashactionscri/

2008年12月10日水曜日

mx.xpath.XPathAPI

・AS2でコンパイルしてみる
まあ、使えます。

・Flash Lite3.0でコンパイルしてみる
使えるが、制限が適用される場合があります、ってのは、どんな場合なんだ。
・以下、標準出力
FTPS033: loadVariables(SampleLEDControl.xml) の呼び出しが見つかりました。制限が適用される場合があります。
file://C:UsersMinako_KuboDocumentsLEDControlSampleLEDControl€81210SampleLEDControl.xml に接続中です。
file://C:UsersMinako_KuboDocumentsLEDControlSampleLEDControl€81210SampleLEDControl.xml からデータをロードしました。
file://C:UsersMinako_KuboDocumentsLEDControlSampleLEDControl€81210SampleLEDControl.xml の要求は終了しました。
窓側
・属性の文字列を数字と文字と混ぜるとアクセスできない
など

・同じ名前のタグが続いても大丈夫


など

・属性の値をとってくる
(XML文書)

<room name="'9F">
<folder name="'海側'"></folder></room>

のような場合、
(AS2コード)
var nList:Array;
var XPathString:String ="/room/*";
nList = XPathAPI.selectNodeList(this.firstChild, XPathString);
for( var i = 0; i < nList.length ; i++ ){
var idNum = nList[i].attributes.name;
trace([idNum, typeof(idNum)]);
}

とすれば、
(標準出力)
海側,string
町側,string
ファシリティスペース,string

と返ってくる。

http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=6326&forum=6&post_id=32372


なお、「adobeが提供しているものはxpathをほとんど実装していない」のでxfactorstudioの方がおすすめらしいです。実際スクリプトぱっと見た感じ、属性値とってくるのもxfactorstudioのが楽そう。

2種類のXPath on Flash

1)com.xfactorstudio.xml.xpathと
参考:http://www.trick7.com/blog/2006/09/28-092340.php

2)mx.xpath.XPathAPIとある
参考:http://itpro.nikkeibp.co.jp/article/COLUMN/20061130/254416/
(リファレンスは特に見つからず。。)


・flash拡張版はimportするだけじゃだめだからちょっと面倒、
xfactorstudio版はimportするだけでいいから楽、というのがググってみた結果。
http://blog.cellfusion.jp/as20/
http://www.anycreative.net/itoh/2006/09/

ActionScript2.0 OOPに初トライ 【2008.12.04】

・前日からの問題が解決
やっぱりスコープのミスだった。
チュートリアルも読んだので、今後はカスタムクラス内でのスコープの問題でそう困ることはなくなりそう。
・落ち着いてやってみると、実はなんとなく知っていた知識の範疇で問題が解決できた。

・なんだかASファイルのクラスの中でムービークリップを生成すると、
それへの参照を持っている配列が上書きされてしまう。その配列をstatic宣言しているわけでもないのに。。
生成するのはフレームアクションで行って、それをクラスに渡す、というやり方がマストという感じ。
・でなければ、リンケージやObject.registerClassメソッドを使うか。
しかしこの2つの動作を調べて良いものを選択する、というのはとりあえず今はキャパオーバーなので、
やめておきます。

ActionScript2.0 OOPに初トライ 【2008.12.03】

・AS2の復習(AS2でオブジェクト指向らしくコーディングしたことがないので)
http://www.adobe.com/jp/devnet/flash/articles/actionscript_guide.html

・AS2でオブジェクト指向するときは、大元のmainメソッドのある場所(コントローラ)はどう配置すればいいんだろう。
今のところやっぱり1フレーム目に書くような作法しか見つからない。

・ASファイルからステージ上のインスタンスを参照する方法が分からず苦戦。

flash lite on Sony mylo

ステージサイズは720*480位がいいかも。
フォントはデバイスフォントにしておくのが一番きれいらしい。

HTML+CSS on Sony mylo

・myloはHTMLをおくと勝手に縮小表示してくれる
・myloはCSSファイルの読み込みに時間がかかる
 CSSはHTMLの中に入れる形にすれば問題ない。