リプタクのもう覚えられません
Google
Web サイト内
topmemo ▶ 外部XMLから外部画像を表示する方法

ActionScript

外部XMLから外部画像を表示する方法

画像URL情報をまとめた外部XMLファイルをスクリプトで読込み、その情報を元に外部画像データを表示させるサンプル。

スライドサンプル
クリックでサンプルページへジャンプ



ファイル構成
サンプル(CS3.fla+SWF+XML+IMG)をダウンロード



【XMLソース】

<?xml version="1.0" encoding="UTF-8"?>
<写真データ>
<写真 id="001"><格納場所>img/01inu.jpg</格納場所><題名>犬</題名></写真>
<写真 id="002"><格納場所>img/02kiyuki.jpg</格納場所><題名>雪樹</題名></写真>
<写真 id="003"><格納場所>img/03hato.jpg</格納場所><題名>ハト</題名></写真>
<写真 id="004"><格納場所>img/04matumoto.jpg</格納場所><題名>松本城</題名></写真>
<写真 id="005"><格納場所>img/05yuki.jpg</格納場所><題名>雪</題名></写真>
<写真 id="006"><格納場所>img/06kumo.jpg</格納場所><題名>雲</題名></写真>
<写真 id="007"><格納場所>img/07hana.jpg</格納場所><題名>花</題名></写真>
</写真データ>



【アクションスクリプト3.0ソース】

//----------------------------------------------------------------------------------------------外部XML読込み
var n_A:int;           //トータルデーター数(画像数)
var n_B:int;           //表示ナンバー
var url_A:String;      //画像URLアドレス
var bitmap_A:Bitmap;   //ビットマップオブジェクト
var xml_A:XML;         //XMLオブジェクト

//外部XML読込み設定
var load_A:URLLoader = new URLLoader();
var req_A:URLRequest = new URLRequest("sample.xml");

//外部XML読込み
load_A.load(req_A);//読込み開始
load_A.addEventListener(Event.COMPLETE,sec1);//読込み完了でsec1関数

//sec1 XMLオブジェクト生成とボタン配置
function sec1(event:Event) {
	xml_A = new XML(event.target.data);       //XMLオブジェクトの生成
	n_A = xml_A.child("写真").length();       //トータルデーター数(画像数)確認

	//ボタン配置
	next_bt.x = stage.stageWidth - next_bt.width - 10;     //ステージ右から10px
	next_bt.y = stage.stageHeight - next_bt.height - 10;   //ステージ下から10px
	addChildAt(next_bt,1);                                 //インデックス1にボタン配置
}

//----------------------------------------------------------------------------------------------外部jpg読込み
//ボタンクリックでsec2開始
next_bt.addEventListener(MouseEvent.CLICK, sec2);

//sec2 画像読込みと配置
function sec2(event:MouseEvent):void {

	//既にビットマップがあれば消去
	if (bitmap_A) {
		removeChild(bitmap_A);
	}

	//イメージ読込み設定
	url_A = xml_A.写真[n_B].格納場所;     //画像URLアドレスの設定
	var load_B:Loader = new Loader();
	var req_B:URLRequest = new URLRequest(url_A);

	//イメージ読込み
	load_B.load(req_B);   //読込み開始
	load_B.contentLoaderInfo.addEventListener(Event.COMPLETE, sec2_A);  //読込み完了後情報取得、sec2_A開始

	//sec2_A 画像配置
	function sec2_A(event:Event):void {
		bitmap_A = Bitmap(load_B.content);                      //ロードしたjpgをビットマップに型変換
		bitmap_A.x = (stage.stageWidth - load_B.width) / 2;     //横中央
		bitmap_A.y = (stage.stageHeight - load_B.height) / 2;   //縦中央
		addChildAt(bitmap_A,0);                                 //インデックス0に配置
	}
	
	//次のデータ番号の設定準備
	if (n_B ==n_A -1) {
		n_B = 0;         //最後までいったら先頭「0」に戻す
	} else {
		n_B += 1;        //それ以外は1追加
	}
	
	//ローダーリセット
	load_B.unload();
}
last update 2009.2.26
参考・出典等
Riptac XML要素のデータアクセス方法
Riptac 外部XMLファイルの読込み方法
Riptac 外部swf/jpgファイルを読込む方法

▲page top

topmemoblogtestaboutmail
Copylight(C)2008 Riptac. All Rights Reserved.