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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   どこでもFlash【携帯向けFlash関連】
     flashlite2.0でXMLからimg,txtを読み込みたいのですが
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kaimu
Åê¹ÆNo.33535
投稿日時: 2007-6-1 11:29
新米
居住地:
投稿: 3
使用環境:
WinXP,Flash8
flashlite2.0でXMLからimg,txtを読み込みたいのですが
初めて書き込みます。

携帯でXMLのimg,txtのデータを獲得したいのですが。

ボタンを押すと更新される用にしているのですが
プレビューの時はうまく行くのですが携帯で見ると
エラーがでてしまいます。

いろいろ調べた結果firstChildを使うとデータが獲得できないので
firstChildを使わないでXMLのtxt,imgデータを取り出す方法をさがしているのですがいい方法はないでしょうか?

よろしくお願いします。

on (press) {
  var doc:XML = new XML();
doc.ignoreWhite = true;

  doc.onLoad = function(success){
treeRootNode = doc.firstChild;
shopCount = treeRootNode.childNodes.length;
shopNode = treeRootNode.firstChild;
txt = shopNode.firstChild.nodeValue;
  img = shopNode.attributes.image;
targetClip.loadMovie(img);
}
doc.load("slides1.xml");
}

取り出したいデータ("slides1.xml");
<?xml version="1.0" encoding="UTF-8"?>
<Photos>
<picture image="image/im_01.jpg">ペンギン</picture>
<picture image="image/im_02.jpg">チーター</picture>
<picture image="image/im_03.jpg">熱帯魚</picture>
<picture image="image/im_04.jpg">熱帯雨林</picture>
</Photos>
コマツ
Åê¹ÆNo.33566
投稿日時: 2007-6-5 0:46
職人
居住地: 東京都葛飾区
投稿: 356
使用環境:
windows7
CS5.5 CS6
Re: flashlite2.0でXMLからimg,txtを読み込みたいのですが
kaimu さん、こんばんは。

まずは要点を絞ってみてはいかがでしょうか?

・XMLデータが正常に読み込めているのか?
・また、loadMovieはonLoadのタイミングで読み込めるのか?

これらを分けて考えたほうが良いかと思います。
(日本の携帯電話の場合、loadMovieはボタンの押し下げが無いと実効されなかったりします。また、エミュレータにあるような海外の機種は問題ないかもしれません。)


//あらかじめ、このボタンのある場所にダイナミックテキストを配置して、インスタンス名「output_txt」を配置したとします。

on (press) {
var doc:XML = new XML();
doc.onLoad = function(success){
 output_txt.text = this;
}
doc.load("slides1.xml");
}


例えば上記のようにしてみてください。
内容がそのまま、ダイナミックテキストフィールドに表示されるかと思います。
文字化けや変なゴミみたいなテキストは入っていませんか?


私が以前、Flash Lite2.0が出た当初に自分の実機でXMLを読み込むチェックをした際に変な挙動が出たことがあります。
以下その時の実験結果です。


-----------------------------------------------------
実機は、au W43H
確認場所は、携帯ブラウザ上(ezweb上)です。

文字コード Shift-JIS、EUC、UTF-8
改行コード CR、CR+LF、LF
文書の内容 XML宣言あり、XML宣言なし、テキストのみ(XMLタグなしという意)
System.useCodepage true、宣言なし

上記の組み合わせ、54通りにて調べてみました。
XMLファイルに関しては、日本語込みです。


Flash側の宣言で、System.useCodepageの宣言なし
→全ての組み合わせで、日本語部分が文字化けしました。
(UTF-8も文字化けするのは変ですよね?)

Flash側の宣言で、System.useCodepageをtrueに
Shift-JIS →日本語部分文字化け
EUC    →日本語部分文字化け
UTF-8   →文字化けなし


System.useCodepageをtrueにした上、さらにUTF-8の文字コードでないと日本語部分が化けるという結果になりました。
FlashがUnicodeベースで、携帯電話がShift-JISベースだからかもしれません。

また、UTF-8だけは、読み込んだXMLデータに「?」マークが追加されたりしました。 その場所は、

XML宣言してある→XML宣言の後に「?」が追加される
XML宣言していない→先頭に「?」が追加される
テキストのみ→先頭に「?」が追加される

もしかすると、このあたりのせいで、XMLをパースする上で問題がでるかもしれません。


※この結果はコマツが実験した機種においての事ですので、動作を保障するものではありません。参考程度に考えください。
kaimu
Åê¹ÆNo.33595
投稿日時: 2007-6-5 16:59
新米
居住地:
投稿: 3
使用環境:
WinXP,Flash8
Re: flashlite2.0でXMLからimg,txtを読み込みたいのですが
コマツさん ありがとうございます。

XML宣言してある→XML宣言の後に「?」が追加される
が原因だと思います。


output_txt.text = this.firstChild;

で出力しても「?」しかでないので「?」から先を表示するにはどうすればいいのでしょうか?
コマツ
Åê¹ÆNo.33605
投稿日時: 2007-6-5 23:51
職人
居住地: 東京都葛飾区
投稿: 356
使用環境:
windows7
CS5.5 CS6
Re: flashlite2.0でXMLからimg,txtを読み込みたいのですが
output_txt.text = this;

↑こちらの結果は見ましたか?
XML宣言のすぐ後に「?」が入っているため、「?」がfirstChildと受け取られたのでしょう。

「?」があるから、firstChildがうまく取得できないのであれば、スクリプトで取ってしまってはいかがでしょうか?

on (press,keyPress"1") {
System.useCodepage = true;
var doc:XML = new XML();
doc.ignoreWhite = true;
doc.onLoad = function(success){
	var baseText:String = String(this);
	var cleanText:String = baseText.split(">?<").join("><");
	var cngXML:XML = new XML(cleanText);
	output_txt.text = cngXML.firstChild;
}
doc.load("slides1.xml");
}


やや強引ではありますが、上記のようにXMLデータを一度Stringデータに戻して、「>?<」と「><」を差し替えるようなやり方はいかがでしょう?
差し替えた後、XMLとして戻してあげれば、firstChildのデータも取れるかと思います。
kaimu
Åê¹ÆNo.33627
投稿日時: 2007-6-7 17:53
新米
居住地:
投稿: 3
使用環境:
WinXP,Flash8
Re: flashlite2.0でXMLからimg,txtを読み込みたいのですが
コマツさん ありがとうございます。

「?」を取ることでうまくXMLを読み込むことが出来ました。

TXTはうまく表示は出来たのですがIMGの方がブレビューだとうまく行きますが実機では読み込めませんでした。

on (press) {
loadMovie ("image/im_01.jpg",_root.targetClip);
}

普通に読み込みだと表示されるのですが、
「imagePath」に代入したimage/im_01.jpgでは読み取り出来ませんでした。

loadMovie (imagePath,_root.targetClip);

変数へ代入するところとボタンを分けてグローバル関数で
読み込んでみたのですが。ダメでした。
変数の中身も確認したのですがimage/im_01.jpgの状態でした。

loadMovie (_global.imagePath,_root.board);

なにがじゃましているのか検討がつきません、
アドバイスよろしくお願いします。

コマツ
Åê¹ÆNo.33630
投稿日時: 2007-6-7 20:29
職人
居住地: 東京都葛飾区
投稿: 356
使用環境:
windows7
CS5.5 CS6
Re: flashlite2.0でXMLからimg,txtを読み込みたいのですが
引用:
TXTはうまく表示は出来たのですがIMGの方がブレビューだとうまく行きますが実機では読み込めませんでした。


ブレビュー?
Flash8上のシュミレータで確認した場合、うまくいったということでしょうか?

引用:
on (press) {
loadMovie ("image/im_01.jpg",_root.targetClip);
}

普通に読み込みだと表示されるのですが、
「imagePath」に代入したimage/im_01.jpgでは読み取り出来ませんでした。

loadMovie (imagePath,_root.targetClip);


上記の内容どおりでしたら、私の環境では読み込めます。


引用:
なにがじゃましているのか検討がつきません、
アドバイスよろしくお願いします。


私もkaimu さんが書いている情報だけでは検討つきません。
もう少し情報が必要に思います。
実際に使用している、ActionScriptは

on (press) {
loadMovie (imagePath,_root.targetClip);
}

↑こちらだけですか?他にも書かれていませんか?
冒頭の質問にあるように、XMLを読み込んで、onLoadのタイミングでloadMovieを実行しているということはありませんか?

もしそうだった場合は、恐らく読み込めないのは実機の方の仕様かと思います。
日本の実機はloadMovieはユーザーの操作、具体的には決定キーやダイヤルキーを押し下げた時にしか実行されませんので。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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