前回のエントリに対して、Technorati経由でAS3のスライダー実装のコードを別の切り口から書いてくれてる方を発見。(ありがとうございます!)
AS3に関しては我流度が相当高いので他の人が書いたコードは相当参考になります。しかも
細かいんですが、MOUSE_MOVEとMOUSE_UPがそのオブジェクト上じゃないとダメっつーのが嫌でStageオブジェクトに逐一 addEventListener。そもそもMOUSE_DOWN出来てる時点で表示リストに追加されているという算段。実はこれ、 FlashPlayerの描画領域を超えて、さらにはブラウザのウィンドウ領域を超えてマウスイベントが拾えるすぐれものtips。StageオブジェクトのMOUSE_MOVEとMOUSE_UPはStageからのドラッグだとイベントを送出するらしいです。
こんなの全然知らなかった!!FlashPlayerの外のイベントまで拾えちゃうのかぁ。。なんかいろいろ新しくできそうなことを模索しちゃいますね。こんな情報まで教えてもらえたので晒した甲斐があったなぁ。
基本コンポーネント作るのめんどくさい
上記のエントリ内でも言及されてますが、AS3でMXMLコンポーネント使えない(ですよね?)のがそもそも開発者を面倒がらせることになっているわけで。「UI含めて大部分の開発をAS3だけで行うんだけども、ボタンやスライダ、テキストエリアみたいな基本的なUIコンポーネントはMXMLのを使い回したい」なんて需要は相当あるんじゃないのかなぁと思っています。
MXMLが微妙にイケてないのが、まさにここの点であって、MXML文書内ではAS3のコードが書けるのに、AS3のコード内ではMXML要素を動的生成することができない(はず、少なくとも自分の調べによると)点。WebページにおけるHTMLとJavaScriptの関係がswfにおけるMXMLとActionScriptであるなら、MXML要素の動的生成くらいサポートしてもよさそうなのに、、と思うのですが、この考えは間違っているのでしょうかね?
あと、CS3から追加されたfl.*パッケージについてもmxmlcがコンパイルできないのも微妙な点。コンパイルが通るようにライブラリをswcにまとめてくれてる人もいるけど、コンパイル通っても実際には表示されるべきUIコンポーネントで使われている画像が一切表示されないから、この話の流れ上では使えない、と言い切ってもよさそう。要するにUI系コンポーネント使えたけりゃCS3買えって話?
情報がまとまってほしい
こんな風に自作コンポーネント作ってる人は結構いると思うんだけども、情報がまとまっててほしい。codereposみたいに共有の場所にみんなでぽんぽん上げていくような。今度スクロールバーとか必要になったら「これはありそうだよなーさすがに」とか呟きながらググりまくる自分の姿が想像できるわけですよ。SBMに共通タグつけるのでもいいけど、何かしろの共有ルールが欲しいな、と。
- Newer: Yahoo!ブックマークのブックマーク数を取得するAPI
- Older: ActionScript3だけでSliderを作る
Google Adsense
Social bookmark comment : 0
No comment.
Comment : 2
- http://www.hatena.ne.jp/Seacolor/
2008-03-18 (火) 10:01 -
> AS3のコード内ではMXML要素を動的生成することができない
var button:ClassFactory = new ClassFactory(Button);
と、いうことでしょうか? - katsuma.tv
2008-04-04 (金) 04:03 -
AS3だけで書いたコードの中でmx.controls.TextAreaとかを利用したコードはコンパイルが通っても実際の画面上には表示できない、という意味でした。ちょっと分かりにくかったですよね。すみません。
でも最近知ったんですけど同じAS3のコードでもMXML内で読み込ませたコードだと、mx.controls.*のコンポーネントがちゃんと使えていることに気づきました。このあたりまだ理解が完全にできていないです。。
Trackback : 0
- TrackBack URL for this entry
- http://blog.katsuma.tv/mt-tb.cgi/137
- Listed below are links to weblogs that reference
- ActionScript3だけで作るUIコンポーネント from blog.katsuma.tv
2008/03/17 (Mon)