ここから本文です

Flashについての質問です。

なおきさん

2010/8/317:05:22

Flashについての質問です。

xmlファイルを使用してステージ上に画像を配置したいと考えいます。やりたいことは
①xmlファイルに画像までのパスを記述しておき、その画像をステージ上に配置する。
②画像は40個配置する。
③ステージに配置された画像にはそれぞれリンクがついていて、画像をクリックするとその画像のリンク先に遷移する。
④画像を配置する際は、配列から一個ずつ取り出して配置する。
以上の事をしたいと考えています。

どのような記述をすれば実現できるでしょうか。
Flash CS3 Actionscript3を使用しています。
よろしくお願い致します。

閲覧数:
348
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

int********さん

2010/8/401:42:56

こんな感じでしょうか
【xml】
<images>
<image>
<file>assets/01.jpg</file>
<url>http://www.yahoo.co.jp/</url>
</image>
<image>
<file>assets/02.jpg</file>
<url>http://www.google.co.jp/</url>
</image>
<image>
<file>assets/03.jpg</file>
<url>http://list.chiebukuro.yahoo.co.jp/dir/list/d2079762792/new</url>
</image>
</images>

【Action Script】
package {
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.navigateToURL;
public class Main extends Sprite {
private var xml:XML;
private var fileList:Array = new Array();
public function Main():void {
var ur:URLLoader = new URLLoader();
ur.load(new URLRequest("assets/files.xml"));
ur.addEventListener(Event.COMPLETE, completeListener);
}
private function completeListener(e:Event):void {
xml = new XML(e.target.data);
for each(var file:XML in xml.*) {
trace(file.file);
var loader:Loader = new Loader();
loader.load(new URLRequest(file.file));
loader.x = Math.random() * 600;
loader.y = Math.random() * 400;
loader.addEventListener(MouseEvent.CLICK,
function(e:Event):void {
clickHandler(e, file.url);
}
)
addChild(loader);
var object:Object = new Object();
object.loader = loader;
object.url = file.url;
fileList.push(object);
}
}
private function clickHandler(e:Event, url:String):void {
for each(var object:Object in fileList) {
if (object.loader == e.target) {
navigateToURL(new URLRequest(object.url), "_blank");
}
}
}
}
}

質問した人からのコメント

2010/8/10 18:11:25

こちらの記述で問題なく実現できました。
ありがとうございました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる