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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     XMLのattが変数だと思われてしまう
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
とんび
Åê¹ÆNo.50137
投稿日時: 2013-12-7 15:32
Bak@Fla大巨匠
居住地: 佐賀県 杵島郡
投稿: 275
使用環境:
MX
CS3
:Flash CS6:CS6
.7.5
XMLのattが変数だと思われてしまう
 AS3.0のFlash CS6で、新規ファイルを作って1フレーム目に書いたコードです。

var xml:XML = <contents><item id="a">aです</item><item></item></contents>;

trace(xml.item.(@id=="a"));


 特に問題のないコードだと思うのですが、以下のようなエラーが出て、@idの所がidという変数だと解釈されてしまいます。

ReferenceError: Error #1065: 変数 id は定義されていません。
	at test_fla::MainTimeline/frame1()


…なんじゃこりゃ

 2つめのitemにもidを振るとエラーとなりません。


----------------
鳶嶋工房

野中文雄
Åê¹ÆNo.50138
投稿日時: 2013-12-11 16:58
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: XMLのattが変数だと思われてしまう
こちらでいかがでしょう。
trace(xml.item.(attribute("id") == "a"));

参考:「XML 階層構造へのアクセス
引用:
tonbiさんは書きました:
 AS3.0のFlash CS6で、新規ファイルを作って1フレーム目に書いたコードです。

var xml:XML = <contents><item id="a">aです</item><item></item></contents>;

trace(xml.item.(@id=="a"));

…[中略]…
ReferenceError: Error #1065: 変数 id は定義されていません。
	at test_fla::MainTimeline/frame1()


----------------
 

とんび
Åê¹ÆNo.50139
投稿日時: 2013-12-11 18:12
Bak@Fla大巨匠
居住地: 佐賀県 杵島郡
投稿: 275
使用環境:
MX
CS3
:Flash CS6:CS6
.7.5
Re: XMLのattが変数だと思われてしまう
 返信ありがとうございます。

 そういえば、そういう関数を使った回避方法がありますね。
 classとかが基本語彙として解釈されるので、それを回避するのに使ってたのに、今回はそれを使うのに気付いてませんでした。

 でも、なんでidはこんな現象が起きるんでしょうね?


----------------
鳶嶋工房

野中文雄
Åê¹ÆNo.50140
投稿日時: 2013-12-11 18:29
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: XMLのattが変数だと思われてしまう
仕様です。

属性またはエレメントの値によるフィルター処理」より引用:
存在しない属性またはエレメントを指定してフィルター処理を実行しようとすると、例外がスローされます。

引用:
tonbiさんは書きました:
 でも、なんでidはこんな現象が起きるんでしょうね?


----------------
 

とんび
Åê¹ÆNo.50141
投稿日時: 2013-12-12 14:48
Bak@Fla大巨匠
居住地: 佐賀県 杵島郡
投稿: 275
使用環境:
MX
CS3
:Flash CS6:CS6
.7.5
Re: XMLのattが変数だと思われてしまう
 あああ、Adobeさんがそう書いてるなら致し方ないですわー。
 仕様以上の理由はよく分かんないですが、実際問題(仕様はあるけど)仕様が無い

 E4X便利で結構思った通り動くんで、思った通り動かない時にショック。


----------------
鳶嶋工房

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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