トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     IOErrorEventをイベントフローに送出する方法
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
opappi
Åê¹ÆNo.37464
投稿日時: 2008-2-4 16:21
新米
居住地:
投稿: 2
使用環境:
Windows XP SP2
FlexBuilder2 or 3Beta(ActionScript3)
IOErrorEventをイベントフローに送出する方法
はじめて投稿させていただきます。よろしくお願いいたします。

IOErrorEventのエラーをイベントフローに送出しようとして以下のエラーに遭遇しました。
TypeError: Error #1034: 強制型変換に失敗しました。flash.events::Event@136f8b1 を Error に変換できません。

エラーの原因、解決方法をご存知の方、教えていただけますか?

private function loadRss():void
{
var request:URLRequest = new URLRequest(this._rss);
var loader:URLLoader = new URLLoader();
loader.load(request);

loader.addEventListener(IOErrorEvent.IO_ERROR, loadIoErrorHandler);
... ...

try
{
loader.load(request);
}
catch (error:Error)
{
......
}
}

private function loadIoErrorHandler(event:IOErrorEvent):void
{
// ■loadRss()を呼び出している側でMY_ERRORを監視したいので、独自のMY_ERRORをイベントフローに送出する
dispatchEvent(new Event(this.MY_ERROR));
}
ニノミヤ カズノリ
Åê¹ÆNo.37477
投稿日時: 2008-2-6 1:57
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: IOErrorEventをイベントフローに送出する方法
情報が少ないですが、こちらで試してみました。

DispatchEventTest.as(FlexBuilder2でパブリッシュ)
package {
	import flash.display.Sprite;
	import flash.net.*;
	import flash.events.*;
	import flash.errors.*;
	import flash.text.TextField;

	public class DispatchEventTest extends Sprite
	{
		private const MY_ERROR:String = "my_error";
		private var _rss:String = "hoge.txt";
		
		public function DispatchEventTest()
		{
			addEventListener(this.MY_ERROR, myErrorHandler);
			loadRss();
		}
		
		private function loadRss():void
		{
			var request:URLRequest = new URLRequest(this._rss);
			var loader:URLLoader = new URLLoader();
			loader.load(request);
			
			loader.addEventListener(IOErrorEvent.IO_ERROR, loadIoErrorHandler);
			//... ...

			try
			{
				loader.load(request);
			}
			catch (error:Error)
			{
				//......
			}
		}
		
		private function loadIoErrorHandler(event:IOErrorEvent):void
		{
			// ■loadRss()を呼び出している側でMY_ERRORを監視したいので、独自のMY_ERRORをイベントフローに送出する
			dispatchEvent(new Event(this.MY_ERROR));
		}
		
		private function myErrorHandler(event:Event):void
		{
			var tf:TextField = new TextField();
			tf.text = "myError!!";
			addChild(tf);
		}
	}
}

上記のコードではエラーは発生せず正常に動作しました。
省かれているコード部分にエラーの原因がある可能性はないでしょうか。
opappi
Åê¹ÆNo.37506
投稿日時: 2008-2-8 11:01
新米
居住地:
投稿: 2
使用環境:
Windows XP SP2
FlexBuilder2 or 3Beta(ActionScript3)
Re: IOErrorEventをイベントフローに送出する方法
試していただいてありがとうございます。

ご指摘のように原因は別のところにありました。


----間違い
private function myErrorHandler (error:Error):void
{
// hogehoge
}

----修正後
private function myErrorHandler (event:Event):void
{
// hogehoge
}

上記のように非常に単純なミスで大変失礼しました。
今後もよろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops