progression4aboutmemo.393個人的メモです。間違いなどありましたらご指摘ください。読み込みが未完了です。Comment|ProgressionでPreloader.asからindex.swfを読み込むときにこんなエラーダイアログに悩まされてました。いうときにこのエラーになるかというと、Preloader.swfがindex.swfの読みこみが終わらないうちに、ブラウザを閉じてしまうとこうなります。index.swfが重い場合、「ローディング長いからもう観なくていいや」ってブラウザ落とすと上記ダイアログで固まるんですね。最高にうざい状態です。エラーとしては、IOErrorってわかってるので、そこのエラー処理を書いてあげればいいんですけど、読み込みの処理はPreloader.asの親クラスに書いてあるので、どのオブジェクトに対して、IOErrorのハンドリングをすればいいのかわからなかったのですが、ついに重い腰をあげて親クラスの中身を覗いてみたら、5分で解決したというオチです。結論としては、こんな感じ。);}Preloader.asのatReady()の中で、thisに対してIOErrorのハンドリングを書けばOKです。thisに書くかといえば、Preloader.asの親クラス、CastPreloader.asの中にこの一行があるので。);//_loaderはindex.swfを読むためのものリスナー関数でsuper.dispatchEventを飛ばしてるから、Preloader.asのthisでイベントを取れるようです。);という感じで書いてみると、一応traceは出力されるんですけども、traceの前に最初のエラーが表示されてしまい、まったく意味がないことになりました。contentLoaderInfoではなく、素直にthisでIOErrorEventをハンドリングすればOK。Comment|便利すぎて自分の実装力がどんどん低下してるprogression4のメモ。Preloaderにて表示オブジェクトを追加するには、backgroundかforegroundを使うことになります。index.swfにてPreloaderのbackgroundおよびforegroundにアクセスするには、index.swfのドキュメントクラスであるCastDocumentがbackgroundおよびforegroundのプロパティを持っているので簡単に参照できます。そこで、ちょっとはまったのが、このドキュメントクラスの参照の仕方。結論だけ書くと、こんな感じ。trace(manager.current.container.root);//出力:[object:index]//Indexのプロパティを取得するにはIndexでキャストする。trace(Index(manager.current.container.root).background.numChildren)//[2011.10.19追記]//Indexでキャストだとうまくいかなくなったみたい//CastDocumentでキャストするtrace(CastDocument(manager.current.container.root).background.numChildren);要はSceneObjectが持つcontainerプロパティのrootが、index.swfのドキュメントクラスとなっているみたい。Comments|progressionを使ううえでの便利プロパティ。departedSceneIddestinedSceneId以前のエントリでも書いてるように、出発シーンと、到着シーンを取得できます。↑はprogression3の書き方。progression4では、progressionインスタンスは無くなり、managerが持ってるプロパティ。manager.destinedSceneId;manager.departedSceneId;これを使って、if文の処理をしたいときちょっとはまったのでメモ。destinedSceneIdとかdepartedSceneIdをtraceすると、/indexとか、/index/aboutとか、sceneIdを出力してくれます。戻り値のデータ型はString?と思いきや、実は違います。//処理}※2010/04/17/16:30追記コメントにてequals()メソッドというものを教えて頂きました。こっちの方が簡単ですね。}※4のBetaまではtoStringなしでも判定してくれてたような気がするけど、RCからは無いとダメみたい。準備が完了していないか、すでにコンテンツが読み込まれています。Comment|タイトルどおりの現象。※PreloadSWF()については↓の記事がとてもわかりやすいです。PreloadSWFクラスで、これを観ながら上記ブログとは少し変えながら試してみたのですが、タイトルのエラー発生。PreloadSWF()の書く順番が重要。URLRequest("sound/sample.mp3")));loaderList.execute();}ちなみに参考にしたブログでは、loaderListの処理をatCastLoadStart()のaddCommand()内で行い、そこに追加している。PreloadSWF()の順番は影響はしないようす。URLRequest("sound/sample.mp3")));this.parent.addCommand(loaderList);});}command周りの処理の順番がイマイチちゃんと理解していないから、泥臭く検証しないとわからないのよね。何種類か方法があるようなのでまとめ。※エラー発生時のイベントについては、onErrorとcatchErrorのどちらでも取れるけど、エラーの内容を参照するには、catchErrorを使っておいた方がいいみたい。※エラー発生時のイベントについては、onErrorとcatchErrorのどちらでも取れるけど、エラーの内容を参照するには、catchErrorを使っておいた方がいいみたい。forumに質問したらすぐに回答を頂けたのでその補足メモ。})と思ってましたが、progression4からは、getResourceByIdというものを使った方が便利とのこと。})getResourceById()の便利なところは、一度読み込めば、読み込んだデータがどこからでも参照できるというところみたい。)と書くことでstaticは変数みたいな扱いができるということかな。↓ざっくり書くとこんな感じ。}}あとgetResourceByGroupというものもあって同様な扱いができるそうです。))SerialListをfinctionでくくると参照がとれました。Comment|progression4からは、Progressionクラスを参照できるプロパティがmanagerになりました。(3はprogressionだった)SceneObjectとかCastSpriteとかが持ってるプロパティなので簡単に参照できます。んが、ちょっとはまったのでmemo。SceneObject(を継承したカスタムクラス)の場合、そのSceneObjectがaddSceneされてない状態では、managerはnullとなる。SceneObjectのコンストラクタにtrace(manager)としてもnullが返ってくるだけ。addSceneされたあとなら、Progressionインスタンスを返してくれる。CastSprite(を継承したカスタムクラス)の場合は、自身の親が普通のspriteとかMovieClipの状態では参照できない。親はCastSpriteとかCastMovieClipとかprogression独自のDisplayObjectContainerでないとだめ。//containerはprogressionの持ってるプロパティ。//containerはprogressionの持ってるプロパティ。id="index"]というようなことが上手くまとめられてる記事もありました。Comment|preloader.fla(プリローダー)に表示オブジェクトを追加する際は、foregroundもしくはbackgroundにaddChild()する。CastPreloader.foregroundCastPreloader.backgroundforegroundは、メインコンテンツ(index.swf)よりも上の階層。外部SWFファイルの読み込みで、子swf側で動的に配置したmcが表示されない。外部SWFファイルの読み込みで、子swf側で動的に配置したmcが表示されない。外部SWFファイルの読み込みで、子swf側で動的に配置したmcが表示されない。外部SWFファイルの読み込みで、子swf側で動的に配置したmcが表示されない。外部SWFファイルの読み込みで、子swf側で動的に配置したmcが表示されない。memo.393about。