2010年06月06日

組み込み向けのASとFlash講座

を、はじめようと計画しています。

FLashを、フレームアニメーションの道具と見るのは、いまや
古い視線です。

Google アンドロイド携帯でも、公式にサポートが宣言されましたが、すでに、PDA向けのFlashプレーヤが無償で手に入るようになっています。

これから、モバイルのリッチコンテンツの組み込みUIの需要は一気に伸びていくでしょう。日本の携帯でも今や、待ちうけの開発はFlashですし。
iPhoneでつぶされた形の、Flashのネイティブコンテンツのパブリッシュは、アンドロイド向けになると思われます。たぶん次期。

ActionScriptはECMA仕様ですが、アンドロイド向けのバージョン、すなわちFlashLight4は、ほぼJava仕様です。
故に、Javaをベースにするアンドロイドとは親和性が良いでしょう。
スクリプトというよりも、オブジェクト指向開発の可能なコンパイラとして考えたほうがよいのです。

ですが、システム開発で鍛えられたエンジニアでもなかなかモノにできません。
これは、もともとクリエイタが使いよい環境から発展しているのでビジュアルな見方も要求されるからです。

これからますます需要の高くなるActionSCriptによるUI開発手法、OOPを学ぶにもいいと思います。

計画を練ってどこのサイトで公開していくか、またアナウンスします。



2010年05月08日

V2コンポーネント

V2コンポーネントは、Flash8相当、AS2.0のパブリッシュで普通に利用できるコンポーネントだし、むっちゃ簡単に作れるのでおすすめなんだが・・・

クラスへのリンケージが必要。
このクラスは、As2.0でオブジェクト指向でこのコンポーネント=実はムービークリップをコントロールするスクリプトだ。

で、SWCを作成するには、MCのシンボルを右クリックしてコンポーネントの定義で、クラスファイルをリンケージするのだが、このとき忘れがちなのが、シンボルのクラスリンケージ。

さらに実は、このMCシンボルのリンケージの方がSWCの定義でリンケージされているクラスよりも優先されることを忘れてはならない。
逆に言うと、コンポーネントの定義でリンケージしていなくても、シンボルのほうのクラスリンケージがしっかりしていれば、問題がなかったりする。しかし、まったく別なクラスを1つのシンボルにリンケージするのは、論理に反するので、優先しているのだろうと思われる。

この変でへんだなーと思われる、思い当たるふしがある方は確認してみると良いかもしれない。

とくに、あるコンポーネントのコピーでべつなものを作るなんてのがよくあると思われるが、そんなとき、エラーがでなくて変だなー
なんてのがよくある。

2010年04月20日

実に興味深い

亜クッションスクリプトの2.0はかなり、OOPの要素があるのだが、
イテレーターのスピードは
果たして早いのか、それとも遅いのか。

実に興味深い結果を実測したブログがある。

うれしいねー、あんがとさん。

http://d.hatena.ne.jp/yasu-log/20070211/1171205536

2010年03月30日

セッターとゲッター

セッターといっても、バレーの話じゃない。
自分でプロパティをつくってまお。という話だ。

この話は、オブジェクト指向を知らないと陳ぷんカンプンの
ぷん子ちゃんだ。

なので、アクセサとか、プロパティ、データーの隠蔽とか
プライベートとかを知っておく必要があるんだよな。

で、セッターとゲッターとは、
プライベートなエリアのデーターに、=演算子でアクセスする
方法を提供する仕組みだ。

いちいちメソッド記述しなくても、

○○=10;のようにアクセスできるから便利なんだ。

例えば、
private var num:int = 2;

public function set test( n:int ) : void { num = n; }


ってのがあったとしたら、
test=10;
とかけるようになるんさ。しかも、numというエリアに格納できる。
getは読み出したいときに使う。
public function get test( ) : int { return num; }

な感じだ。

こうしておけは、
trace(test)ができる。

つまり、testはメソッドじゃなくて、変数のように使える。
これをプロパティというんだ。

2010年03月19日

thisかselfかrootかはっきりせい

いやー
thisってのが曲者なんですわ。

あ、Javaやってる人や、C++の人は気にしないでね。
これはActionScriptの話ざんす。

いわゆるグローバルなプロパティなんざんすが、_rootは、タイムライン(ムービークリップ)のベースのインスタンスを常にさしているのですわ。真の意味のroot。
それに対して、thisってのは、一向に定まらないざんす。
まるで、カレントディレクトリをあらわしているようなものなのですわ。

Flashというのは、ステージにいろいろ貼り付けるわけで、それがタイムラインを持っているムービークリップなら、そのインスタンスがthisのはずなのに・・・
でもそのクリップが、コントロールだったりするとそうはいかのテンプラなのでした。
コントロールは、図書館のように、シンボルクリップを格納しているライブラリよろしく便利に作れるのはいいんだけれど、貼るとそのインスタンスは何? this? self? _root?

ぶぶー
_rootにあるシンボルってな具合でインスタンスを見れば使えるギリス。
でもねー
thisじゃ、つかえねえギリス。
え?
CS4のバグ?
続きを読む

2010年03月17日

構造体が使えないと困ることもあるのよ

配列、Arrayクラスで良いじゃんとか、Vectorクラス使えよっていう貴兄も多かろうと思われますが。ホントカ

でもね、やっぱり見やすいとか、PHPのように連想配列っぽくつかいたいときには、どうすべかというのにぶつかるのよ。

ASには、プロパティを実現するメカニズムがあるので(javascriptにもあるけどさ)、それを使うのよね。オオヤッターマン。

こんな感じでっせ。
 var struc ={ hello:"world",keroro:"軍曹"};

アクセスするときはこんなかんじなのじゃ ジジイカ

 trace(struc.hello)
または
 trace(struc["hello"])
trace(struc["keroro"]);

連想配列のようにつかえるのがええ。