XMLに記述されているサムネイル画像を等間隔に並べるには?

このQ&Aのポイント
  • XMLに記述されているサムネイル画像を等間隔に並べる方法について教えてください。
  • XMLに記述されている複数のサムネイル画像を帯状に縦に等間隔に並べる方法を探しています。
  • Flash 8.0を使用して、XMLに記述されているサムネイル画像を等間隔に並べる方法を教えてください。
回答を見る
  • ベストアンサー

XMLに記述されているサムネイル画像を等間隔に並べるには?

XMLに記述されているサムネイル画像(複数)を帯状に(フイルムのネガの様に)縦に等間隔に並べたいのです。 XMLは各ノードに画像名とサイズが属性として記述されており、 画像サイズは横幅は同じですが、高さがそれぞれ異なるので、単純に箱に入れるわけにはいかないようです。 そこで、 1.伸縮可能な箱を用意する。 2.XMLから、属性[高さ]を取得し、1の伸縮可能な箱に設定 3.2つめからは、箱のy座標を、足していく。 4.これを繰り返す。 帯状に並べた画像には後々上下にスライドをさせたいと思います。 ところが、この方法ですと、3つめ以降が意図しない位置に表示されたり、あるいは表示すらされなかったりします。 どなたか力を貸してください。 後々、この帯状の画像(群)を上下にスライドさせたりもしようと思っています。 Flashは8.0です。

  • Flash
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

ご質問では, 具体的に何をどうしたのかを書かれていらっしゃらないため, なぜ 3つめ以降が意図しない位置に表示されたり表示すらされなかったりするのかはわかりません。 ただ,それとは別の問題で, > 2.XMLから、属性[高さ]を取得し、1の伸縮可能な箱に設定 この考え方 というか やりかた はまずいと思います。 箱とは何かよくわかりませんが, 仮にムービークリップだとして, 写真をロードしたムービークリップを伸縮させると写真が変形してしまいます。 箱(ムービークリップ)の大きさは変えてはならないのではないでしょうか。 10×10px で作成したムービークリップに 100×100px の JPEG をロードすれば, そのムービークリップは 100×100px になります。 200×200px で作成したムービークリップに 100×100px の JPEG をロードしても, そのムービークリップは 100×100px になります。 ムービークリップを変形させなければ, ムービークリップの大きさは写真に影響を与えません。 変なことをすると歪むだけです。 たとえばこんな感じでできると思いますが↓(例)。 外部XML「data.xml」 --------------------------------------- <album> <photo nm="img0.jpg" h="50" /> <photo nm="img1.jpg" h="80" /> <photo nm="img2.jpg" h="60" /> <photo nm="img3.jpg" h="70" /> <photo nm="img4.jpg" h="100" /> </album> --------------------------------------- 「data.xml」 及び「img.0.jpg」~「img.4.jpg」と 同じ階層にある SWF フレーム1 のスクリプト (コピペするだけで用意する物はありません) --------------------------------------- // x座標 px と y座標 py (左上端座標)の設定 px = 50; py = 20; // 写真と写真の間の隙間 sh のサイズを設定 sh = 10; // XML インスタンスの作成 pXML = new XML(); // 余分な空白の削除 pXML.ignoreWhite = true; // XMLロード時の動作を定義 pXML.onLoad = function(OK) { // ロード成功時 if (OK) { // ノード数の取得 n_len = this.firstChild.childNodes.length; // i=0→ノード数未満 で i に 1 を加算しながらループ for (i=0; i<n_len; i++) { if (i == 0) { // i が 0 のとき写真の高さを 0 とする ph = 0; } else { // i が 1以上 で 写真の高さに h属性数 を加算 ph += Number(this.firstChild.childNodes[i-1].attributes.h); } // nm 属性の取得 pnm = this.firstChild.childNodes[i].attributes.nm; // 空のムービークリップ p_mc0~ノード数 を作成 _root.createEmptyMovieClip("p_mc"+i, i); // p_mc0~ノード数 の x 座標を指定 _root["p_mc"+i]._x = px; // p_mc0~ノード数 の y 座標を指定 _root["p_mc"+i]._y = py+sh*i+ph; // nm 属性のJPEG をロード _root["p_mc"+i].loadMovie(pnm); } } }; // 外部XML のロード pXML.load("data.xml"); --------------------------------------- 写真を拡大縮小させるのでしたら, その場合に限って写真のロードされたムービークリップを拡大縮小させれば良いですが, そうでないかぎりは, 写真のロードされたムービークリップは拡大縮小しないほうが良いと思います。 以降も同様です。 スライドさせるようにする場合は, 上のように _root に空のムービークリップを入れるのではなく, 「スライドさせる全体のムービークリップ」を作成して, そのムービークリップの中に「ロード用ムービークリップ」を作成した方が良いかもしれませんが, その方法をとった場合も, 「スライドさせる全体のムービークリップ」自体を拡大縮小させてはいけません。 写真まで拡大縮小してしまいます。

kumata_rim
質問者

お礼

ありがとうございます。 外部XMLの構造はご察しの通りで、もう一つ属性(linkURL)が付きます。ここの掲示板でも何度か似たような質問を見ましたが、(BlurFiltanさまが解答されていましたね)複数の画像を並べたものが見当たらなかったので、質問させていただきました。 空の箱というのは表示用のスクリーンで、ここにXMLから読み込んだを表示させています。 実は、質問した後に、表示用のスクリーンを複数個用意して、 それぞれのX座標を0、 Y座標を「自分より上にあるスクリーンの高さの合計」に設定したところ、 意図した場所に配置は出来たのですが、スクリプトがやたらに長くなってしまい尚かつ画像群を上下にスライドする方法がわからず、途方に暮れているところでした。 BlurFiltanさまが書かれた手法でやってみたいと思います。

関連するQ&A

  • flash、外部xml、サムネイル画像の改行について。

    XMLに記述されているサムネイル画像(複数)を帯状に横に等間隔に並べたいのです。 XMLは各ノードに画像名とサイズが属性として記述されており、 画像サイズは横幅は同じですが、高さがそれぞれ異なるので、単純に箱に入れるわけにはいかないようです。 そこで、 1.伸縮可能な箱を用意する。 2.XMLから、属性[高さ]を取得し、1の伸縮可能な箱に設定 3.2つめからは、箱のy座標を、足していく。 4.これを繰り返す。 5.指定の場所まで行ったら、改行する。 4までは以前の質問項目を参考にうまく行ったのですが、 5.「指定の場所まで行ったら、毎回改行する。」 というのが、うまくいきません。 誰かご指南いただけないでしょうか? Flashはcs3です。

  • Flash-XMLで読み込んだ各childNodesにリンクを付ける方法

    初めて質問致します。 類似した質問が過去にあり、参照しましたが解決に至らなかったので、 どうぞよろしくお願いいたします。 FLASHにXMLから画像を読み込み、その画像にXMLから読み込んだリンクを設定したいと思っています。 XMLの記述は ------------------------------------------------------ <GROUP> <SRC>001.jpg</SRC> <URL>001.html</URL> </GROUP> ------------------------------------------------------ となっています。この<GROUP></GROUP>ノードを複数回繰り返します。 FLASHでは ------------------------------------------------------ this["target_mc"+i].target.loadMovie(_root.SRC);/*画像を表示*/ this["target_mc"+i].link_btn.onRelease = function() { getURL(_root.URL);};/*リンクを設定*/ } ------------------------------------------------------ のように記述しています。 問題は、 画像部分(_root.SRC)は、XMLに記述してある、ノードの数の分だけ、きちんと画像が表示されるのに対して、 リンクは、XMLに記述してある、最後のノードのリンクが全ての画像に適用されてしまうことです。 もう少し詳しく説明します。 XMLに<GROUP>ノードが3つあり、それぞれ ■画像パス:001.jpg リンク:001.url ■画像パス:002.jpg リンク:002.url ■画像パス:003.jpg リンク:003.url と設定してあるとすると、 FLASHで出力した場合 ■表示画像:001.jpg リンク:003.url ■表示画像:002.jpg リンク:003.url ■表示画像:003.jpg リンク:003.url というように、画像は001~003.jpgが正常に表示されるのに対して、 リンクは全て003.urlに統一されてしまうのです。 画像が<GROUP>ノードの分だけきちんと表示されているので、 GROUPノードを繰り返すというActionScriptの記述は間違っていないように思います。 どなたか解決策をご存知でしたら、是非ご教示下さい。 何卒よろしくお願いいたします。

  • XMLでJPEGスライドを作成_表示画像のリサイズ

    初めて質問をさせていただきます。 よろしくお願い致します。 下記の、adobe.comにある「XMLでJPEGスライドを作成する」で、 読み込む画像サイズがバラバラの場合に、 “表示サイズをそれぞれの画像によって変えたい”(縦のサイズだけ固定をし、中央に寄せて表示させたい) と試行錯誤しているのですが、なかなか進みません。。 ▼XMLでJPEGスライドを作成する http://www.adobe.com/jp/support/flash/applications/jpeg_slideshow_xml/ この解説の中の下記のページで、 http://www.adobe.com/jp/support/flash/applications/jpeg_slideshow_xml/jpeg_slideshow_xml07.html 「ステージ上のターゲットクリップのインスタンスをリサイズすると、 ロードされた画像やムービーは同じだけ拡大縮小されることも覚えておきましょう。 ターゲット領域をリサイズしたいのだが画像サイズを替えたくという場合は、 インスタンスではなくシンボル自体をリサイズしましょう。」 と記載があるので、そもそもこのサポートセンターの方法だと “表示サイズをそれぞれの画像によって変えたい”は難しいのでしょうか。。 (環境) WindowsXP flash 8 よろしくお願い致します

    • ベストアンサー
    • Flash
  • FLASHとXMLのスライドショーにリンクを付ける場合

    はじめまして。初質問です、緊張しますね・・・ FLASHでスライドショーを作成してるんですが、更新をしやすいように下記のようなXMLを作成して、管理したいと思ってます。 ------------------------------------------------- <Slides> <slideNode jpegURL="img/01.jpg">1</slideNode> <slideNode jpegURL="img/02.jpg">2</slideNode> <slideNode jpegURL="img/03.jpg">3</slideNode> <slideNode jpegURL="img/04.jpg">4</slideNode> <slideNode jpegURL="img/05.jpg">5</slideNode> </Slides> ------------------------------------------------ さらに、スライドショーの画像をクリックすると、指定のURLへジャンプできるようにしたいんですが、この場合どのようにしたらいいのかで困ってます。 サンプルを探したんですが、なかなか見つからず、よろしければASの書き方を含めご指導お願いしますm(__)m ※フェードインアウトで、一定時間で次の画像へ自動的に進む一般的な分です。 javascriptでしてくださいって言われちゃうかもしれないですが、後々フェードじゃなく、色々なエフェクトをかけていきたいので・・・わがままでごめんなさい汗

    • ベストアンサー
    • Flash
  • Exclel2007のヘッダー部に図形を配置する方法がわかる方、いますか。2007だと配置できません。

    VistaでExcel2007を使い始めたのですが、「ヘッダー&フッター」として 以前は簡単にオートシェイプ(図形)をヘッダーやフッターとして配置できました。 しかしExcel2007ではそれができません。 エクセルの全てのページの上下に色帯をつけたくてヘッダー&フッターとして 帯状の図形を配置したいのですが、帯状の画像ファイルを用意する以外に そうしたことはどうすればできるでしょうか。 Excel2007のヘッダーでは背景色さえ塗ることができず、困っています。

  • 高性能なスライドショー

    スライドショーなんですが、一般的なものは画像が画面サイズより大きな場合、画面サイズに合わせて画像を縮小して全面表示するタイプが普通ですが、探しているものは上下あるいは左右にスクロールすることにより画像をすべて表示できるものを探しています。こんなものありますか。シェアでの情報もあればお願いします。

  • ウェブサイトのレスポンシブルデザインについて。

    現行の非レスポンシブルのウェブサイト(ページ数約100ページ)を、レスポンシブルデザインに変える計画をしています。 質問1. 本文中に組み込まれている画像を、端末のサイズによって、サイズを伸縮させたいのですが、 Dreamweaver CS6 の可変グリッド機能を使って、画像サイズを伸縮させるとして、サイト内には複数ページに多数の画像が配置してあるので、画像1枚ずつ、各端末による表示設定をする必要があるのでしょうか? 最低でも各画像に、Class属性を設定する必要がありそうな気がするのですが・・。 質問2. 画像を1枚づつ、3種類の端末に合わせて、表示サイズを手動で設定する必要があるのであれば、Dreamweaver CS6の可変グリッドデザインは使用せずに、Dreamweaver 用のレスポンシブルデザインのサイトを作る拡張機能を使用した方が現実的な様に思うのですが、いかがでしょうか? 現行のサイトをレスポンシブルにするのは、私にとってはかなり大変な作業なので、アドバイスをいただけると助かります。 よろしくお願いします。

    • 締切済み
    • CSS
  • ブラウザのサイズによって伸縮させる方法

    下記のサイトのようにウィンドウの大きさに合わせて伸縮するサイトが作りたいのですが、コードの記述が分かりません。 http://www.cocoro-gift.com/ ブラウザのサイズによって背景画像が伸縮するやり方は載っていたのですが、今回作りたいのは右側にもムービークリップがあり、ウィンドウの大きさを変えてもステージの右端にくっついていくような作りです。 上記サイトのsakeのメニューを開いていくと、左下にボタン、右にお酒の画像が出てくるのですが、ウィンドウの大きさを変えてもそれぞれの位置は固定されたまま、ステージだけが伸縮する形です。 そのようなflashをつくるには、どんなコードにすればいいのでしょう? 分かる方どうかよろしくお願いいたします。

  • 今日、まだ初めて画像編集を使ったばかりの者です。

    今日、まだ初めて画像編集を使ったばかりの者です。 pc 動画編集ソフトについて shot cutを使っています。 動画の中にPCで作成した画像でスライドショーを作ろうとしているのですが、 左右にできる黒帯を無くしたいのですが、どうしたら消えるでしょうか? 作成した画像のサイズは横幅693px、高さ851pxです。 動画の書き出しは1920×1020に設定しました。 どうしても付属画像のように左右に黒帯ができてしまします。 動画のフレームのサイズが大きいのかな?と思いフレームの幅を変更小さくしてみたのですが、 フレーム幅550 フレーム高600にしたら今度は左右上下に余白ができてしまいます。 ちなみに動画はyoutube用のサイズと もう一つ、サイトに貼る用の動画で、高さ380px 横幅670pxの大きさの動画の2つを作成 しようと思っています。 ●各々どのくらいの大きさ(縦横px)で画像を作成するとピッタリ収まりそうでしょうか? 動画編集ソフトで画像を拡大する機能で回避できそうですでが、画質が落ちるのであまり拡大はしたくないです。

  • 画像処理フリーソフト初心者、どれが良い?

     超~初心者(PC全般)です。わからない事をどう説明したら良いかもわからないくらいの、です。  写真の縮小をペイントで悪戦苦闘してます。  そこで、GIMP、Jtrim、Artweaverなど検討中です。  とりあえず私が今やりたいのは・・・    ・デジカメ画像   ペイント時、キャンパスの大きさ 4992×3328ピクセル            解像度        88×88   で、でっかく出てくるのを         640×480ピクセル         解像度 72(Web用はこのくらいがよい?と書籍で) にしたいのです。ペイントだと伸縮では%入力でピッタリ画像とキャンバスを一致したサイズにできません。(やりかたの問題?)  画像自体をピクセル指定して縮小する、って事が一発でできるようなソフトはないでしょうか?   あと、Web用として加工しておくのに良いサイズ、解像度なども教えていただきたいです。ポップアップウインドウなんかもあります。  近々にWeb用に、デジカメ、スキャナー取り込みのネガ写真を統一したサイズにしたり、写真をきれいにしたり、見出しやボタンもゆくゆくは作れるようになりたいです。  ずっと、GIMPのみ検討してましたが、初心者には使いこなせないとも聞いて他も視野に入れてます。ただ、マニュアルとしてネット上が苦手なので書籍が出ているGIMPに傾いてしまいます。  質問内容が理解しづらいとは思いますが、どうかたくさんのアドバイス、解決策お待ちしています。よろしくおねがいいたします。