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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     ID3Infoオブジェクトのfor..inループ
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
knagai
Åê¹ÆNo.38314
投稿日時: 2008-4-4 18:39
職人
居住地: 白馬村
投稿: 796
使用環境:
ID3Infoオブジェクトのfor..inループ
MP3ファイルのIDタグを含んだID3Infoオブジェクトをfor..inループ処理して、
ID3Infoオブジェクト内のプロパティ名を出力したいのですが、できません。
以下のコードはほぼFlashヘルプ(外部サウンドファイルのロード)のコードです。
var s:Sound = new Sound();
s.addEventListener(Event.ID3, onID3InfoReceived);
var req:URLRequest = new URLRequest("sound.mp3");
s.load(req);
s.play()

function onID3InfoReceived(event:Event):void {
	var id3:ID3Info = event.target.id3;
	//var id3:ID3Info = ID3Info(event.target.id3);
	
	trace("Received ID3 Info:");
	trace(id3)	//[object ID3Info]
	
	id3.nagai="NAGAI";
	
	for (var propName:String in id3) {
		trace(propName + " = " + id3[propName]); //nagai = NAGAI
	}
}


event.target.id3をキャストしたり、for..inループのpropNameの型を*にしてもfor..inループは動作しません。

trace(id3)ではID3Infoが出力されており、id3.artistなどの専用プロパティも値は正しく出力されるので、
データが届いていないことはないです。

またid3.nagai="NAGAI";のように勝手にプロパティを追加すると、
for..inが突然機能して、propNameとその値(nagai = NAGAI)が出力されます。

この結果から考えると、ID3Info内のプロパティはfor..inループで探れないのではないかと思えてきます。とはいえ、ヘルプには書かれています。

プロパティ名とその値をfor..inループで出力させるにはどうすればよいのでしょう?

追加----
以下の3行も加えてみたのですが、結果は変わりませんでした。
-----
trace(id3.hasOwnProperty("songName"));//true
id3.setPropertyIsEnumerable("songName",true);
trace(id3.propertyIsEnumerable("songName")); //false
-----


----------------
永井勝則:
himco.jp :

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » ID3Infoオブジェクトのfor..inループ knagai 2008-4-4 18:39
     Re: ID3Infoオブジェクトのfor..inループ Fumio 2008-4-4 22:47
       Re: ID3Infoオブジェクトのfor..inループ knagai 2008-4-5 9:44
         Re: ID3Infoオブジェクトのfor..inループ Fumio 2008-4-5 11:21

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