※ ChatGPTを利用し、要約された質問です(原文:FLASH,AS3.0 クリック後、xmlからファイルを取り出す方法)
FLASH,AS3.0 クリック後、xmlからファイルを取り出す方法
このQ&Aのポイント
as3.0初心者のため、FLASHでクリック後にxmlからファイルを取り出し、ステージに写真を表示する方法が知りたい。
外部xmlから写真データを読み込み、ボタンをクリックするとステージに写真を表示するプログラムを作りたい。
初心者なので、参考書を見てプログラムを作成したが、ボタンをクリックしても写真が表示されない。解決法を教えてほしい。
FLASH,AS3.0 クリック後、xmlからファイルを取り出す方法
as3.0初心者です。
恐れ入りますが、現在製作中のプログラミングに関することで教えていただきたいことがあります。
外部xmlより写真データを読み込み、ステージに並べるプログラムを作っています。参考書等のサンプルからステージに並べるまではわかったのですが、ボタン【インスタンス名:btn_a】をクリックした後に写真がステージに現れるようにアレンジしたいのですが…色々ためしてもエラーが出てしまいうまくいきません。どなたか教えていただけないでしょうか?
出来れば現在のプログラムをアレンジして使いたいと思っています。
初歩的な質問で申し訳ありませんがご教授いただけないでしょうか?
★xnlloader
package {
import flash.display.DisplayObjectContainer;
import flash.system.System;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
public class PhotoXMLLoader {
private var container:DisplayObjectContainer;
private var xmlLoader:URLLoader;
private var urlReq:URLRequest;
//コンストラクタ
public function PhotoXMLLoader(container:DisplayObjectContainer) {
this.container=container;
//URLLoaderのインスタンスを作る
xmlLoader=new URLLoader();
//リスナーを登録する
xmlLoader.addEventListener(Event.COMPLETE,onLoaded);
//URLRequest
urlReq=new URLRequest();
}
//XMLファイルの読み込み
public function loadXML(xmlurl:String,isUnicode:Boolean=true):void {
//XMLファイルのURL
urlReq.url=xmlurl;
//unicodeでなければtrueに設定する
System.useCodePage=! isUnicode;
//読み込み開始
xmlLoader.load(urlReq);
}
//読み込み完了〜写真を並べる
protected function onLoaded(eventObj:Event):void {
//受信したxmlから値を取り出す
var xmlObj:XML=new XML(xmlLoader.data);
var photos:XMLList=xmlObj.photolist.photo;
var w:int=290+10;
var h:int=40+10;
var row:int=1;
for (var i:int=0; i<photos.length(); i++) {
var photo:XML=photos[i];
//写真のURLを調べる
var url:String="img/"+photo.@fname;
//写真を読み込んで並べる
var photoLoader:GoodLoader=new GoodLoader(url);
photoLoader.x=w*(i%row);
photoLoader.y=h*int(i/row)+200;
; container.addChild(photoLoader);
}
}
}
}
★goodloader
package {
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.events.IOErrorEvent;
public class GoodLoader extends Loader {
var urlReq:URLRequest;
var tw:Tween;
public function GoodLoader(url:String) {
//読み完了イベントのリスナーを登録する
this.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
//IOエラーイベントのリスナーを登録する
this.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
urlReq=new URLRequest(url);
load(urlReq);
}
//読み込みエラーに対応する
protected function onIOError(eventObj:IOErrorEvent):void {
urlReq.url="image/io_error.jpg";
load(urlReq);
}
//フェードインで表示する
protected function onLoaded(eventObj:Event):void {
tw=new Tween(this,"alpha",Regular.easeInOut,0,1,1,true);
}
}
}
お礼
ありがとうございます。