« Yahoo!検索WebサービスをMobable Typeのエントリに表示する | DEEP KICK.com Blog | Flash Creative Technique - vol.54
横スクロールの2Dアクションゲーム(前編) »

2006年10月20日

Flash Creative Technique - vol.53
プリントカラーシミュレーターの作成(後編)

このエントリーをはてなブックマークに追加

web creators 2006年10月号web creators 2006年10月号の「Flash Creative Technique」は「プリントカラーシミュレーターの作成」(後編)になります。

サンプルコンテンツできあがりのサンプルはこちらをクリック。

雑誌の連載の方は相変わらず進んでいるのに、こちらのBlogの更新の方は、すっかりご無沙汰しておりました。最近Blogにハマりつつあると言っておきながら、このザマ。反省しております。確か今回は「プリントカラーシミュレーター」の途中から完成まででしたね。では気がつくところを解説してみます。

そうそう、Flash + XML、略してFlaxを広めるのだという野望について、前回では話をしたのでした。多分その言い方流行らんな(笑)。そんな予感がします。

で、前回の状態では、プリントタイプ選択コンボボックスからプリントタイプを選択すると「Tシャツイメージ表示エリア」に「プリントタイプ用外部swf」が読み込まれると。で、これらは「プリントxml」で制御されていると。だんだん思い出してきました(笑)。しかし「T-shirt color エリア」にはまだ何も表示されません。さてどうするか?というわけで今度はプリントタイプごとに用意されたXMLドキュメント「tXml」を読み込みにいくわけです。プリントタイプが決まると「tXml」も自然とどのXMLドキュメントかが決まるというわけです。で読み込んだ「tXml」を解析します。解析して得た情報を格納するためのオブジェクト[_global.tXmlIndex]をnew 演算子で作成しておきます。ちなみに読み込んだXMLを解析するには新規XMLオブジェクトをnew 演算子で作成しておく必要があります。これは[tXML]という名前で登場します。

で、tXmlIndex.tColor = new Array(); とします。オブジェクト[tXmlIndex]のtColorプロパティを配列化するわけです。で、for文内でtXmlIndex.tColor[i] = new Object(); として、配列をオブジェクト化してプロパティを持たせて情報を格納できるようにします。この辺が複雑怪奇で裏技的ですが、XMLをFlashで取り込む際の摩訶不思議なところですね。なんでそうする必要があるのかは今わからなくても後でなんとなくわかるようになってきます。で、結果的に
//属性tNameを格納
tXmlIndex.tColor[i].tName = tColorNode[i].attributes["tName"];
//属性tValueを格納
tXmlIndex.tColor[i].tValue = tColorNode[i].attributes["tValue"];
//T-shirt colorセッティング
_root.tColorSetting(i);
こういうことをfor文でやるわけです。tXmlIndex.tColor[i].tName にはカラーの名称、青とかレッドとかといったStringが入ります。tXmlIndex.tColor[i].tValue には003300とかFF0000といった色を表す16進数のStringが入ります。ということを[i]回繰り返すわけです。ちなみに[i]は「tXml」に定義された色の種類の数ですね。

ここで注目したいのは何気に存在している _root.tColorSetting(i); です。引数に[i]を受け取っています。いったいこいつは何をやらかしているんでしょうか?実は相当すごいことをやっています。これ抜きでは、この2回に渡った連載の意味がゼロになってしまいます。それくらいこれはコアであり肝です。早い話が[i]を使ってカラーアイコンのインスタンス名を作り、リンケージでカラーアイコンを生成し、ついでにsetRGBで色を塗ってあげて、さらにX座標Y座標をそろえてあげて、色の名称と16進数をそれぞれのインスタンス内の変数に情報としてプレゼントしているわけです。それをこの関数で[i]を使ってまとめてやっています。利用できるものはなんでも利用する。すごい根性です。

他にもまだまだ説明したいことがありますが、今回はこのへんで。後はサンプルファイルもMdNのサイトからダウンロードできますので、自力でがんばってみてください。

テクノラティ タグ検索:

投稿者 kaoru : 2006年10月20日 16:07

このエントリーをはてなブックマークに追加

contents
about
contact
Photo Gallery
blog
iPhone/iPad アプリ
Kindle book
portfolio