« progression検証 #1 | Home | progression検証 #3 シーンに色々貼り付けてみる(標準) »

Oct 202008

progression検証 #2 シーンの階層化

続き、ちと横道にそれて子供のシーン、孫のシーンを作ってみる。
Index.asの_onInitの中で定義された"contact"シーンの子供、孫を作ってみる。

//子供シーン contact_1
var contact_1:TempScene = new TempScene("contact_1");
contact.addScene(contact_1);
// contact1 Child button を作成する
var contact_1_bt:TempButton = new TempButton();
contact_1_bt.x = 200;
contact_1_bt.y = 150;
contact_1_bt.sceneId = contact_1.sceneId;
addChild( contact_1_bt );
//孫シーン contact_1_1
var contact_1_1:TempScene = new TempScene("contact_1_1");
contact_1.addScene(contact_1_1);
// contact1 Child button を作成する
var contact_1_1_bt:TempButton = new TempButton();
contact_1_1_bt.x = 200;
contact_1_1_bt.y = 180;
contact_1_1_bt.sceneId = contact_1_1.sceneId;
addChild( contact_1_1_bt );
こんな感じ。 まぁなんて簡単。ステキング。

ただ開発の際に子供コンテンツが外部SWFだとして、それが複数の子供を持つ場合等、制作過程で子供コンテンツで動作確認を取りながら開発とか作業分担は難しいのかなぁ?
いや、そもそもSceneに対して外部コンテンツを定義できるのか?が良く分かってないのだけど・・・。(Sceneの中で外部SWFを読み込む感じかしら?) 例えばその場合その外部SWFの中で再びprogressionを定義して階層化したりしたらどうなるのだろうか?(Staticでは無いので一応可能?)
なんか知りたいことが山のように出てきて中々進めない・・。

まぁ一つ一つ検証してみよう。

4 Comments

ご使用ありがとうございます!

> シーンが遷移中にボタンが自動的にKILLされている。
この機能は Progression の autoLock プロパティを false にすると無効化できます。
ただしその場合には、コマンドの中断処理も正しく設定しなければいけないので難易度は高いですね。

> Sceneに複数のcastを割り振りできなくなった
シーンと表示オブジェクトを関連付けないというのが Progression の特徴なので、関連付けるには意図的に参照を渡してあげる必要があります。

> ただ開発の際に子供コンテンツが外部SWFだとして、それが複数の子供を持つ場合等、制作過程で子供コンテンツで動作確認を取りながら開発とか作業分担は難しいのかなぁ?
シーンと表示オブジェクトが独立しているので、表示させたいモノは何であっても問題ありません。
ただ、ある程度開発しやすさを考慮した場合にはシーン構造自体は親が全て管理した方がオススメですね。

> 例えばその場合その外部SWFの中で再びprogressionを定義して階層化したりしたらどうなるのだろうか?
Progression は、識別子さえ違っていればいくつでもインスタンスを作成できます。
ですので、子の中でさらに Progression で制御をしてもまったく問題ありません。
ただし、ブラウザと同期可能なインスタンスは常に 1 つだけなので、そこだけポイントですね。

> 勉強会に行きたいのだけど、いつも都合が合わず欠席している。
ワークショップはかなり基本的な部分だけなので、ここまで理解されていると正直あまり意味がないかもしれません・・・。
勉強会的なノリのイベントも検討しているので、よければぜひそちらにいらしてください!
もしくは、僕を飲みに連れ出してしまうのが一番早いかもしれませんw

あぁぁぁ、神様コメントありがとうございます。
>この機能は Progression の autoLock プロパティを false にすると無効化できます。
そですね、難しそうですよね。KILLさせたい場合とさせたくない場合の両方が混在しているのでもう割り切るしかないよな・・とも思っております。

>シーンと表示オブジェクトを関連付けないというのが Progression の特徴なので
そですね、そじゃないと結局今までやってきたケースバイケースでフルスクラッチと一緒ですもんね・・。

>ただ、ある程度開発しやすさを考慮した場合にはシーン構造自体は親が全て管理した方がオススメですね。
今から検証してみようかなと思っているのですが、例えば外部SWFの中でドキュメントルートで定義されているprogに対して動的にシーンを追加したりとか・・できるとうれしいかな?と・・。大規模案件になってきたときにサブコンテンツレベルで制作を分業にした場合など、サブコンテンツが複数のシーンを持っている場合等、サブコンテンツオーサリングの場合はその中で遷移可能。親に組み込むと親のprogにシーンとして追加とか・・。(うまく伝えられないw)ま、検証してみます。

>ただし、ブラウザと同期可能なインスタンスは常に 1 つだけなので、そこだけポイントですね。
ですよね、そこで引っかかっていました。なので外部SWFのオーサリング時に何かしら切り分ける仕組みを作って対応できたらいいなぁと考えています。

>ワークショップはかなり基本的な部分だけなので、ここまで理解されていると正直あまり意味がないかもしれません・・・。
あ・・・いや、多分思われている程理解できてないかと・・w

>勉強会的なノリのイベントも検討しているので、よければぜひそちらにいらしてください!
あ、はぃ、も少しやり込んでみて参加させてください。今の状態では赤面しちゃうのでw
>もしくは、僕を飲みに連れ出してしまうのが一番早いかもしれませんw
おお、それもステキングw
でも酒が入るとエロ話しかしないかもしれないw

ほんとコメントありがとうございました!助かりました!
がんばりまっす!

> そですね、難しそうですよね。KILLさせたい場合とさせたくない場合の両方が混在しているのでもう割り切るしかないよな・・とも思っております。
autoLock は、具体的には実行中の goto() メソッドの呼び出しを許可するかどうかですので、KILL させたい箇所でのみ autoLock を false にして、それ以外の部分では true にしてしまう、ような動的な変更でも大丈夫です。
もしくは autoLock は常に false にして、手動で lock プロパティを操作してしまっても(面倒ですが)いけると思います。

> 今から検証してみようかなと思っているのですが、例えば外部SWFの中でドキュメントルートで定義されているprogに対して動的にシーンを追加したりとか・・できるとうれしいかな?と・・。
この辺りは実装しようと思っていろいろ研究したんですが、抽象的なシーンの結合はカンタンでも、結合時と非結合時でディスプレイオブジェクトの扱いをどう辻褄をあわせるのか?というのが難題で結局実装を見送っています・・・。
ただ、親 SWF のインスタンスにさえアクセスできてしまえば、子からシーンを追加なども問題なくできるので、何かしらの約束を作ることで実現する方法はあるかもしれません。

> おお、それもステキングw
> でも酒が入るとエロ話しかしないかもしれないw
それはそれでアリですw

>もしくは autoLock は常に false にして、手動で lock プロパティを操作してしまっても(面倒ですが)いけると思います。
そですね、まぁイベントをうまく気合入れて制御できればやってみようかしらと・・。それかprogressionの多段構造でLock無しのものを取り扱うか・・・。まだ漠然としていますが・・・。

>ただ、親 SWF のインスタンスにさえアクセスできてしまえば、子からシーンを追加なども問題なくできるので、何かしらの約束を作ることで実現する方法はあるかもしれません。
そですね、ちょっとこれもどの程度影響が出てくるのかまだ見えて無いので、も少し検証してから試してみようと思っています。

>それはそれでアリですw
えぇぇぇ~!?w

Leave a comment

Search and Archives