StarlingフレームワークによるStage3Dを使った2次元表現

XMLデータを読込む

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
XMLデータはURLLoaderクラスで、外部ファイルから読込みます。
講師:
13:29

字幕

Starling フレームワークの スプライトシートでは アニメーションの 各フレームのイメージを収めた 画像ファイルの他に その画像のどの部分を アニメーションで どう使うかという XML データを一緒に 使うことになっています そこでクラスファイルに XML データを 読み込まなければなりません その方法についてご紹介しましょう XML データの中身は ここでは特に気にする必要はありません けれども一応 簡単にお見せしておきましょう これがスプライトシートとして書き出された XML データです スプライトシートのデータは Starling フレームワークでは TextureAtlas という オブジェクトとして扱われます ですから それが要素名に付いています そして この書き出されたスプライトシートは 6 フレームのアニメーションだったので そのフレーム数 分のデータがある とりあえず これぐらいイメージとして 頭に収めておけば良いでしょう Starling フレームワークの ルートクラスには 極簡単な大枠だけ入力してあります 先ずクラス定義ですね スプライトを継承します extendしますので Starling のスプライトクラスが インポートされています そしてコンストラクタの中では このルートクラスが ステージの子になった時 初期化の処理を行うということで EventListener に ADD_TO_STAGE というイベントで 初期化のメソッドが登録してあります 初期化のメソッドには 未だ何も書いていません 後 XML データの読み込みに使う URL_Loader と URL_Request という 2 つのファイルがインポートしてあります URL_Loader クラスを使って XML を読み込む処理を 書き加えていきます 初期化のメソッド ここに書き加える訳ですが 先ず URL_Loader の インスタンスを作ります 変数名は loader として 型指定は URL_Loader ですね そして お約束通り new で インスタンスを作ります そして この loader と名前を付けた インスタンスの入った 変数ですけれども それに対して load URL_Loader に load というメソッドを呼び出すと ファイルが読み込めます 勿論どのファイルを読み込むか ということが指定してないですね この loader の対する loader というメソッド この括弧の中引数に 読み込むライブファイルを 指定するんですが その指定には URL_Request の オブジェクトを使います ですからもう 1 つここで URL_Request の インスタンスを作らなければいけません 変数名は url としましょう 型指定は URL_Request です はやり new ですね URL_Request そして この括弧の中に 読み込むファイルの パスを書きます 今回は fla ファイルと同じ場所に XML ファイルが直に置いてありますので ファイル名だけで結構です animation としましたので animation.xml 拡張子まで きちんと入れましょう これで XML ファイルの読み込みはできます 1 つ忘れていましたね load の中に URL_Request のオブジェクトを 指定していませんでして これで読み込めるんですが 読み込んでしまえば良いでしょうか 読み込んだデータを使いたいですよね そのためには読み込んだことを知って つまりイベントとして 読み込んだことを捉えて 読み込んだ後に 必要な処理を加えなければいけません ですから EventListener を 加えてあげる必要がある訳です EventListener は URL_Loader の オブジェクトに対して加えます loader ですね で addEventListener Listener の加え方はお馴染みです そして Event は 読み込み終わったら というのがありまして Event.COMPLETE です そして読み込み終わった場合の処理を Listener として定めます createInstance としましょう データを読み込んで それを処理して終わりではなくて その後アニメーションのインスタンスを作る ということを想定しています EventListener のメソッドを定めましょう メソッドは private にします そして function 丸括弧 () 中括弧 { 入力のためのショートカットです [esc] の f n これをタイプします エスケープキー 1 回 f n ここに Listener のメソッド名を定めます コントロール若しくは コマンドドラッグでコピーです タイプミスやると面倒くさいですからね できるだけコピーを使いましょう そして引数には 毎度お馴染みですが Event オブジェクトです 型指定は Event とします そして戻り値は void ここに処理を書き加えていきます 読み込みを終えた XML のデータは URL_Loader のオブジェクトが持っています ところが URL_Loader を入れた変数 local 変数になっています ですから別のメソッドから アクセスすることができません ではプロパティに宣言する というのも 1 つの方法なんですが Event オブジェクトから 取り出すこともできます コピーしましょう コントロール若しくはコマンドドラッグです Event オブジェクトに target というプロパティがありまして target は何ですか という風に聞くと これが EventListener を加えた Loader オブジェクトを返してくれます そして URL_Loader の data という プロパティが 読み込んだ XML のデータを持っています 但しこの段階では XML というのは 文字列 テキストのデータです それを XML として解析できるようにするには XML に変換する必要があります 変換の関数がありまして XML そのままですね これで括ってあげると 中のテキストを XML ファイルとして解析して XML のデータにしてくれます ですから これを 変数に入れましょう data としましょうか data_xml 型指定は XML です これでデータが取れました またデータの表示の仕方とか 使い方は考えていませんので とりあえず trace 関数で 表示してみることにしましょう trace の data _xml クラスファイルは一旦保存しましょう ファイルメニューから保存です fla ファイルの方に切り替えて ムービープレビューで確かめてみます 制御メニューからムービープレビューです コンパイルエラーが出てしまいました エラーメッセージを確かめてみましょう 未定義である可能性が高いプロパティ data に Starling events event.dispatch の参照を使用して アクセスしています ちょっと意味が分かりにくいですね ただ いずれにしても データ型が分からない というメッセージのようです では swf を閉じて Starling ルートクラスに戻りまして スクリプトをフルスクリーンにしますので ファンクション 4 番 キーボードから 2 回押します XML データの読み込みというのは 特に Starling 関係ないですね つまり Action Script 3.0 定義済みの処理です 従って この URL_Loader に addEventListener で COMPLETE というイベントに Listener を加えまして この COMPLETE と言うイベントは Starling フレームワークにもあるんですが でも このイベントとして Listener が受け取るのは Starling ではなくて Action Script 3.0 定義済みの Event のオブジェクトなんです ところが ここでは Starling のイベントを読み込んでいます ですから同じイベントと言う名前なんですが Starling のイベントだと 思い込んでいますので Flash のイベントは 受け取れませんということなんです どうしたら良いかというと 1 つの方法はインポートをもう 1 つ加えて Flash のイベントも 読み込むということもあるんですが ちょっと処理が煩わしくなります そこで ずるをしてしまうんですけど ここを Event でなくて オブジェクトで型指定します 型指定というのは 親の方で型指定を することは可能です ですから Event は 親がオブジェクトですので オブジェクトで型指定しても大丈夫なんです 但し親になってくると プロパティやメスの数が少ないですから 厳格な扱いが されなくなります そういうデメリットが あるんですけれども ここで データを取り出したらすぐに XML の型指定をした変数に入れてしまいます ですから Event オブジェクトを受け取った この瞬間だけちょっと ちょっと危うい状況ではあるんですが きちんと処理をすれば問題がありませんし すぐに型指定をした厳格な扱いがされる 変数に入れておりますので ここは ちょっと無精をして オブジェクトの型指定をしてしまいます では改めてファイルは保存しましょう では fla ファイルの方に切り替えて 制御メニューから ムービープレビューで確かめます ステージには特に何も起こりません 出力パネルにデータが XML のデータが出てくれば 動作したということですね エラーも出てきていません 見覚えのある TextureAtlas が始まる XML のデータが出てきましたので 読み込みは成功です では おさらいをしましょう swf は閉じて ルートクラスに行って ファンクション 4 番 2 回押して フルスクリーンの表示にします XML ファイルを読み込んで XML データとして 受け取るまでの処理の流れです 先ずは読み込みは URL_Loader で行います インスタンスを作ります そして読み込みは この URL_Loader の オブジェクトに対して load ということで 読み込みができるんですが その時 渡す引数 ここには読み込む XML ファイルの パスが入っていなければなりません この URL を指定するのは URL_Request というオブジェクトになります ですから別に URL_Request のコンストラクタを new で呼び出し その引数に文字列で 読み込むファイルのパスを指定します 今回は fla ファイルと同じ場所なので 直にファイル名だけです そしてこのオブジェクト URL_Request のオブジェクトを load のメソッドの引数に渡します これで読み込みは できるんですが 読み込み終わったデータを使いたい場合は 通常使いたいでしょうね そういう時には loader URL_Loader に対して EventListener を加えます 読み込み終わったらというのは COMPLETE というイベントです そこに Listener を登録します Listener のメソッドは Event オブジェクトから URL_Loader が参照できますので target というプロパティを使いました 但し今回はちょっとズルをして Starling のイベントしか インポートしていないので Event オブジェクトを Event で型指定することができません そこでオブジェクトで型指定を 緩くしてしまいました そうすることによって target にアクセスできて URL_Loader のオブジェクトは取れますので その data プロパティで 先ず XML ファイルのテキストの データを取り出します それを XML に変換するには 関数 xml で その引数にテキストデータを渡します これで XML に変換できましたので xml に型指定した変数に入れて これで xml データとして 処理できる状態になります

StarlingフレームワークによるStage3Dを使った2次元表現

StarlingはFlash Player 11の新しい描画機能Stage3Dに基づいて作られた2次元の描画用フレームワークです。このコースではStarlingフレームワークによるクラス定義の基礎から、トゥイーンアニメーションやマウスインタラクション、そして最近のバージョンで実装された新しい機能まで解説していきます。

5時間09分 (40 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
カテゴリー
プログラミング
価格: 3,990
発売日:2014年01月26日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。