« AS2でAS3のEventDispatcher | メイン | 東京てら子ワークショップキットのIndexScene »
2008年4月 1日
[Progression] Progression に触れてみる2
とりあえず何か作ってみないことには良し悪しも何もわからないので
とにかくざっくり作ってみた。
なんかせっかくリンクまでしてもらったのに、あのサンプルじゃ申し訳ないし。
Progression デモ(2008.03.31)
まだ画面遷移とか何もしてないので、もうちょっとチョメチョメしてからソースのほうもアップします。
で、以下、今のところの雑感など。
Progressionは大きくは「シーン」と「キャスト」の2つから構成されてるんだと思うのだけども、
シーンクラスに何を書いて、キャストクラスに何を書くかってのが悩む。
これは自分の未熟さのせいなんだけども。
ところでキャストからシーンを参照する方法が分からなかった。
そもそもそんな作り方をするのが間違いなのかもしれない。
このAmazonのやつは、すでにシーンとキャストがごちゃごちゃ。
シーンがキャストを制御するんだから、やっぱりキャストからシーンを参照するようなことは
しちゃいけなかったかもしれない。
あと、コマンドクラスをいかにウマく使うかってのもミソだと思うんだけども
これがまた不慣れなせいで、すっ飛ばして自分で関数作って実装しちゃったりする。
折角コマンドが用意されてるのにaddEventListener使いまくりだったり。
あとaddCommandで追加したコマンドの実行の仕方がわからなかったり。
結局SerialListを新たに作ってexecuteで実行とか。
きっと何か用意されてると思うんだけども。
Flash作るとき、自分はステージ上にボコボコレイアウトしていって
それをスクリプトで制御するんだけども、はじめからステージ上にオブジェクトを
配置していると、"onCastAdded"が使えなかった気がするな(気のせいかな?)。
なんか不確かなんだけども。
ExPreloaderからIndexへの遷移ももうちょっと調べてみないと。
ローディング後の後処理みたいなのを作った場合、その後処理後から
Indexへの連携の仕方が分からなかった。
ああ、帰らなきゃ。
とにかくざっくり作ってみた。
なんかせっかくリンクまでしてもらったのに、あのサンプルじゃ申し訳ないし。
Progression デモ(2008.03.31)
まだ画面遷移とか何もしてないので、もうちょっとチョメチョメしてからソースのほうもアップします。
で、以下、今のところの雑感など。
Progressionは大きくは「シーン」と「キャスト」の2つから構成されてるんだと思うのだけども、
シーンクラスに何を書いて、キャストクラスに何を書くかってのが悩む。
これは自分の未熟さのせいなんだけども。
ところでキャストからシーンを参照する方法が分からなかった。
そもそもそんな作り方をするのが間違いなのかもしれない。
このAmazonのやつは、すでにシーンとキャストがごちゃごちゃ。
シーンがキャストを制御するんだから、やっぱりキャストからシーンを参照するようなことは
しちゃいけなかったかもしれない。
あと、コマンドクラスをいかにウマく使うかってのもミソだと思うんだけども
これがまた不慣れなせいで、すっ飛ばして自分で関数作って実装しちゃったりする。
折角コマンドが用意されてるのにaddEventListener使いまくりだったり。
あとaddCommandで追加したコマンドの実行の仕方がわからなかったり。
結局SerialListを新たに作ってexecuteで実行とか。
きっと何か用意されてると思うんだけども。
Flash作るとき、自分はステージ上にボコボコレイアウトしていって
それをスクリプトで制御するんだけども、はじめからステージ上にオブジェクトを
配置していると、"onCastAdded"が使えなかった気がするな(気のせいかな?)。
なんか不確かなんだけども。
ExPreloaderからIndexへの遷移ももうちょっと調べてみないと。
ローディング後の後処理みたいなのを作った場合、その後処理後から
Indexへの連携の仕方が分からなかった。
ああ、帰らなきゃ。
トラックバック(0)
このブログ記事を参照しているブログ一覧: Progression に触れてみる2
このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/490

いろいろ試していただきありがとうございます!
シーンとキャストの関係ですが、基本的にコントローラとビューを完全に分離することもコンセプトの一つなので、何らかの方法で参照を渡してあげない限りアクセスすることはできません。
とにかく参照できれば OK という場合には、Progression.getInstanceById( "id" ) で取得してしまうとどこでも参照ができるので、手軽で便利だと思います。
addCommand() については、onCast~ 系のイベントが発生している時に、任意のコマンドを追加することで、イベント終了後に一気に実行してくれる機能です。
基本的に内部で SerialList コマンドに追加されている状態なので直列で実行されますが、parallelMode プロパティを true にすると、並列で処理させることもできます。
また、onCastAdded ですが、AddChild コマンドもしくは AddChildAt コマンドを使用した場合に発生するイベントなので、Flash のステージ上に配置した場合には発生しません。
ただし、親子間でイベントがつながっていくようになっているので、親シンボルにボコボコレイアウトした上で、親を AddChild コマンドで配置すれば、全てのインスタンスでイベントを受け取ることができます。
ローディング系については、微妙にまだ中途半端な実装なので、今後充実させていこうと思っています(汗
少しづつチュートリアルの方も追記していっているので、今後もよろしくお願いします!
デモのProgression de Amazon凄いですね!
負けてられないな!って思いましたー :-)
taka:niumさん、いつもフィードバックありがとうございます。
恐縮です。
やっぱり「キャスト」から「シーン」の参照は邪道ですよね。
後々、キャストの挿げ替えとかを考えたら、やっぱりひとつひとつのキャストが
自身の処理だけで完結できるようにしたほうがいいってことなんだろうなあ、
って勝手に思いました。
ローディングはcompleteイベントの後に、自前でロード処理終了の通知イベントを
作ってやれば、それをIndexクラスで受け取ってごにょごにょってやればいいのかなと
思いました。
あんまりフレームワーク側で何でも実装しちゃって拡張性を損なったらもったいないですしね。
精進します。
nobuさん、どうもはじめまして。
デモは多分仕事でこのフレームワークを使うとしたら
こういう外部からデータ取って並べたり、コンテンツ切り替えたり、
ってことをするんだろうなあ、と思って作ってみてるものです。
実際自分がやってることは Amazon からデータ取ってきて並べてるだけなので
やっぱり凄いのは Progression なんだと思いますよ。
> やっぱり「キャスト」から「シーン」の参照は邪道ですよね。
あまり邪道、本道は想定してないですね。
本体で分断させているのは、離れているものをくっつけることはできても、くっついているものを剥がすことは難しいために、基本は分断させた上で Progression.getInstanceById() メソッドのようなアクセス経路を用意している感じです。
ただ、実は完全に分断されているわけではなく、CastButton クラスの移動先に当たる sceneId プロパティに値を設定した時のみシーン状態に応じた変化をボタンに与える動きがあったりします。
ローディングは、現状でもいくつかの作り方はあるんですが、オーソドックスなスタイルを決めることができなくて保留中ですね。
ただし、今後はかなり力を入れて対応していく予定です。
また何かありましたら、お気軽にご相談ください!
> 本体で分断させているのは、離れているものをくっつけることはできても、くっついているものを剥がすことは難しいために、
あ、なるほど。そりゃおっしゃる通りです。
実際キャストとシーンクラスをそれぞれ見直して、構築しなおしてみたのですが
結局双方からアクセスできる仲介クラスみたいなのが
必要になる場面も出てくるかなあと思いました。
そうしないと逆にかなり遠回りな実装になってしまったり。
ローディングも少し触ってたのですが、preloader.flaを作った後に
再度index.flaに戻ったときに、Preloaderクラスを参照したら
「インスタンスが無い」とか、最初に若干つまずきましたが
その他は特に問題もなさげでした。
> 今後はかなり力を入れて対応していく予定です。
楽しみにしてます。
Progression の更新頻度の高さには脱帽です。