メイン コーダーズルーム【スクリプト系】 xmlデータ読み込みとTimerクラスでの切り替え | 投稿するにはまず登録を |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
igaito | Åê¹ÆNo.44254 投稿日時: 2010-1-8 16:16 |
新米 居住地: 九州 投稿: 7
使用環境:
|
xmlデータ読み込みとTimerクラスでの切り替え JPEGのファイルを外部XMLファイルを使って読み込み、一定の秒数で
そのJPEGが切り替わるフォトアルバムみたいなものを作っています。 XMLデータの読み込みとJPEGの表示まではなんとか、できたのですが 一定の秒数で切り替える部分がうまくいきません。 以下が、現状のソースです。 XMLloader.as package { import fl.motion.MotionEvent; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.events.TimerEvent; import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.navigateToURL; import flash.display.*; import flash.utils.Timer; public class XMLloader extends Sprite { //プロパティ private var urlLoader:URLLoader; private var xml:XML; private var max:uint; private var dataList:Array; private var imgLoader:Loader; private var container:Sprite; private var imgLink:String; private var imgPath:String; private var minutetimer:Timer; //コンストラクタ public function XMLloader() { init(); } //XML読み込み private function init() { //URLLoaderオブジェクトの作成 urlLoader = new URLLoader(); urlLoader.load(new URLRequest("xml/imgload.xml"));//xmlファイルをロード //XMLデータ読み込み完了イベント作成 urlLoader.addEventListener(Event.COMPLETE, completeLietener); dataList = []; //Arrayの初期化 imgLink = new String(); //Element<link> imgPath = new String(); //Element<path> //タイマー作成 minutetimer = new Timer(3000, 0); //タイマーイベント作成 minutetimer.addEventListener(TimerEvent.TIMER, onTick); //スタート minutetimer.start(); imgLoader = new Loader(); //Loaderオブジェクトを作成 container = new Sprite(); //Spriteオブジェクトを作成 addChild(container); //addChildで追加 //ロード完了イベント imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded); //マウスイベント container.addEventListener(MouseEvent.CLICK, onClick); container.addEventListener(MouseEvent.MOUSE_OVER, onOver); container.addEventListener(MouseEvent.MOUSE_OUT, onOut); } //XML読み込み完了後 private function completeLietener(e:Event):void { //XMLオブジェクトの作成 xml = new XML(e.target.data); max = xml.item.length(); for (var i:uint = 0; i < max; i++) { imgPath = xml.item[0].path; imgLink = xml.item[0].link; imgLoader.load(new URLRequest(imgPath)); dataList.push([imgPath, imgLink]); //配列にElementを追加 //trace(imgPath); //trace(imgLink); } } //ロード完了後 private function imgLoaded(e:Event):void { container.x = 12; container.y = 11; container.addChild(imgLoader.content); } //タイマーイベント private function onTick(e:TimerEvent):void { var count:int = minutetimer.currentCount; var seconds:Number = (minutetimer.delay * count) / 1000; trace(count + "回目" + seconds + "秒"); imgPath = xml.item[1].path; imgLink = xml.item[1].link; imgLoader.load(new URLRequest(imgPath)); } //クリックイベント private function onClick(e:MouseEvent):void { var request:URLRequest = new URLRequest(imgLink); navigateToURL(request, "_self"); } private function onOver(e:MouseEvent):void { buttonMode = true; } private function onOut(e:MouseEvent):void { buttonMode = false; } } } この部分でもう一度画像を変えようとしているのですが 3秒経過した時点で以下のようなエラーが出てしまいます。。。 ArgumentError: Error #2025: 指定した DisplayObject は呼び出し元の子でなければなりません。 at flash.display::Loader/flash.display:Loader::_load() at flash.display::Loader/load() at XMLloader/::onTick() at flash.utils::Timer/flash.utils:Timer::_timerDispatch() at flash.utils::Timer/flash.utils:Timer::tick() /********************************************************** //タイマーイベント private function onTick(e:TimerEvent):void { var count:int = minutetimer.currentCount; var seconds:Number = (minutetimer.delay * count) / 1000; trace(count + "回目" + seconds + "秒"); imgPath = xml.item[1].path; imgLink = xml.item[1].link; imgLoader.load(new URLRequest(imgPath)); } /********************************************************** XMLファイルはこちらになります。 xml/imgload.xml <?xml version="1.0" encoding="utf-8"?> <img> <item> <path>img/lbanner_01.jpg</path> <link>http://www.adobe.com/jp/</link> </item> <item> <path>img/lbanner_02.jpg</path> <link>http://japan.cnet.com/</link> </item> </img> かなりはまってしまって抜け出せないでいます。 どうかご教授いただければと思います。 ------------------------ 環境 OS:Windows Vista Flashバージョン:CS3 ------------------------
|
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» xmlデータ読み込みとTimerクラスでの切り替え | igaito | 2010-1-8 16:16 |
Re: xmlデータ読み込みとTimerクラスでの切り替え | mayor | 2010-1-8 18:14 |
Re: xmlデータ読み込みとTimerクラスでの切り替え | mayor | 2010-1-8 18:44 |
Re: xmlデータ読み込みとTimerクラスでの切り替え | igaito | 2010-1-8 18:52 |
Re: xmlデータ読み込みとTimerクラスでの切り替え | igaito | 2010-1-8 21:43 |
投稿するにはまず登録を | |