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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     XMLで読み込んだテキストが改行されない
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Sif
Åê¹ÆNo.12994
投稿日時: 2004-12-3 2:20
半人前
居住地: たこ焼き王国
投稿: 36
使用環境:
XP SP2 Home
Pro 7.2
Re: XMLで読み込んだテキストが改行されない
こんにちは。

yoshi04さんの提示されているxmlをテキストにコピペして保存、
そのファイルをflaに[my_Xml.load]で読み込み、
さらにそのテキストノードをダイナミックテキスト
[myTextField.text]に流し込んだところ、

━━━━━━━━━━━━━━━━
サイドブラシ使用時:690mm
サイドブラシ未使用時:500mm
━━━━━━━━━━━━━━━━

と表示されるはずが、

━━━━━━━━━━━━━━━━
サイドブラシ使用時:690mm

サイドブラシ未使用時:500mm
━━━━━━━━━━━━━━━━

と表示されてしまいました。
そこで、ダイナミックテキストの内容をデバッガで確認すると、
サイド?690mm\r\nサイド?500mm

のようになってしまっていました。
そこで、前述の置換関数convSentenceでいろいろと実験を
してみたのですが、下記のような症状です。
"\r\n"を"\n"に置換 → "\r\r" 改行2つのままに
"\r"  を""  に置換 → ""     改行ナシに

どうやら、別の切り口で攻めなければならないようです…

どなたか、ご存知の方よろしくお願いします?
空野大二郎
Åê¹ÆNo.12990
投稿日時: 2004-12-2 19:27
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: XMLで読み込んだテキストが改行されない
 まいど。

 「アプリケーションが改行して、データをXML形式でサーバに保存
している」と、安直な予測をしてみます。
 すると、改行がUNIX系のものでされていると考えてみます。

改行コードマッチング使用機種
LF\n: UNIX系OS

 おそらく改行されているのは、「\n」が挿入されているためだと考えられます。
 改行を削除して行間をちぢめたいなら、表示する前にそれを実行
されればよろしいと思われます。

this.convSentence = function (theStc, oldKey, convKey) {
	var sentence_array = theStc.split(oldKey);
	return sentence_array.join(convKey);
};
 
outstr_str = <comment></comment>のテキストノード;
outstr_str = convSentence(outstr_str, "\n", "");
trace(outstr_str);//「サイドブラシ使用時:690mmサイドブラシ未使用時:500mm」



 ・・・おかしいですね。 改行を削除すると、読みにくくなります。

 yoshi04さんの実現なさりたい状態を計りかねていますので、もし、
目的が異なる場合は、下記の三つをはっきりと記述していただけない
でしょうか?
 よろしくお願いします。

1:現状
2:目的
3:目的達成後の状態


----------------
空野 大二郎 アニメーター作家
桜の道

yoshi04
Åê¹ÆNo.12989
投稿日時: 2004-12-2 17:56
半人前
居住地: 大阪府
投稿: 39
使用環境:
win2000,Flash MX 2004 pro
Re: XMLで読み込んだテキストが改行されない
みなさんいつもお世話になっております。
解決した問題をむしかえすようで申し訳ないんですが
下記のXMLファイルのように\nを使って改行したのではなく
Enterキーで改行した場合Flashで読み込んで表示すると
行間が1行分余分にあいてしまいます。

xmlファイル
<contents>
  <comment>サイドブラシ使用時:690mm
サイドブラシ未使用時:500mm</comment>
</contents>

こういう書き方をしなければいいのですが会社で使っているアプリケーションがこういう形でXMLを書き出してしまいます。
それで書き出したXMLをSWFで読み込んで表示するというアプリケーションなんですがSWFの原本のFLAファイルがないのでどういうコードになっているのかわかりません。
今回表示するSWFのデザインを変更するため一から作り直そうと思い
色々とやっているのですがこの改行のところでつまっています。(他のところでもつまりましたがこのサイトのおかげでなんとか解決しています。)
書き出したXMLファイルも膨大な量になっているので修正するのが困難な状態です。何かいい方法がないでしょうか?
ご教授よろしくお願いします。
Sif
Åê¹ÆNo.12961
投稿日時: 2004-12-2 2:41
半人前
居住地: たこ焼き王国
投稿: 36
使用環境:
XP SP2 Home
Pro 7.2
Re: XMLで読み込んだテキストが改行されない
こんにちは。

HNaokiさん、おめでとうございます?
ひとつの処理にもいろいろな方法があるということで…
(なんちって )

空野さん、いえいえめっそうもない。
今後もご教授よろしくお願いします。

野中さん、ありがとうございます。
いつも勉強させていただいております。
今回もとても勉強させていただきました!
空野大二郎
Åê¹ÆNo.12911
投稿日時: 2004-12-1 9:27
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: XMLで読み込んだテキストが改行されない
 まいど。
 HNaokiさん、解決おめでとうございます。

 紹介させていただいた文字の置換は、昨日知ったばかりでした。
 野中文雄さんの紹介されている「Stringオブジェクトにメソッド追加
(3.2)を今日知って、さらにびっくりです。
 HNaokiさん、お互いがんばりましょう。

 Sifさん、わたしなんてもっとひよっこですよ。
引用:
Sifさんは書きました:
「げっ!」と思い、会社の自分のASをなおそうと見直してみたら、
見事に空野さんの方法[split -> join]で書かれており、自分の
記憶力のなんたるかを感じてしまいました


 野中さん、ありがたく参考にさせていただきます。
引用:

野中文雄さんは書きました:
ご参考までに。

ActionScript 1.0:「Stringオブジェクトにメソッド追加」(3.2)
ActionScript 2.0:「サブクラスの作成」(1-3)


----------------
空野 大二郎 アニメーター作家
桜の道

ゲスト
Åê¹ÆNo.12910
投稿日時: 2004-12-1 9:01
Re: XMLで読み込んだテキストが改行されない
>>sifさん、空野大二郎さん

返信遅くなってすみません。やっと解決しました。
問題の置換部分ですが、ソースをみてなるほどと思っちゃいました。
「FLASHで困ったことがあれば、FLASH-JP」と自分で思いこんでいたところがあるので、他サイトでも検索することを忘れていました。これからは、気をつけたいと思います。ありがとうございました。

>>野中文雄さん

たしかにXMLのテキストを直接改行するば、そのまま改行されるわけですが、
もし直接XMLを編集しなくてはならなくなった場合、XMLが増えれば増えるほど、
私の場合は、ミスが出そうで(改行を消してしまうとか)、「文章中の改行」と「XMLの改行」に分別をつけたいという思いがありましたのでこのような仕様で作りたかったのです。私仕様というところでしょうか。すみません。
野中文雄
Åê¹ÆNo.12907
投稿日時: 2004-12-1 5:15
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: XMLで読み込んだテキストが改行されない
ご参考までに。

ActionScript 1.0:「Stringオブジェクトにメソッド追加」(3.2)
ActionScript 2.0:「サブクラスの作成」(1-3)
引用:
空野大二郎さんは書きました:
 ActionScriptで文字列の置換のやり方があったので、そいつを
紹介します。
[code]//convSentence(変換する文字列, 検索する文字, 置換する文字)
this.convSentence = function (theStc, oldKey, convKey) {
// var sentence_array = new Array();
var sentence_array = theStc.split(oldKey);
return sentence_array.join(convKey);
};

ところで、もともとのご質問について。XMLのテキストを直接改行したのでは、問題があるのでしょうか?


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

Sif
Åê¹ÆNo.12905
投稿日時: 2004-12-1 2:34
半人前
居住地: たこ焼き王国
投稿: 36
使用環境:
XP SP2 Home
Pro 7.2
Re: XMLで読み込んだテキストが改行されない
こんにちは。

空野さん、フォローありがとうございます。
[さぶすとりんぐ]する必要が全くありませんでしたね…
「げっ!」と思い、会社の自分のASをなおそうと見直してみたら、
見事に空野さんの方法[split -> join]で書かれており、自分の
記憶力のなんたるかを感じてしまいました

身に付いてね?
空野大二郎
Åê¹ÆNo.12849
投稿日時: 2004-11-30 6:43
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: XMLで読み込んだテキストが改行されない
 まいど。

 ActionScriptで文字列の置換のやり方があったので、そいつを
紹介します。

//convSentence(変換する文字列, 検索する文字, 置換する文字)
this.convSentence = function (theStc, oldKey, convKey) {
  var sentence_array = new Array();
  sentence_array = theStc.split(oldKey);
  return sentence_array.join(convKey);
};
 
//テキストノードの中身が下記のような状態とします。
outstr_str = "テキストがはいります\\nここで改行"; 
 
outstr_str = convSentence(outstr_str, "\\n", "\n");
trace('outstr_str=' + outstr_str);


 XMLからのテキストノードは「\n」がエスケープされていることが
分かったのですから、それを置換する方法ならネット上で見つかる
可能性があります。

 ご質問される前に、検索(FLASH-JP.COM以外も)されることをオススメします。
 今回の件は某googleを使い、「actionscript 置換」で検索可能でした。
(わたしが使っていた自作関数よりも格段汎用性のあるものが!!
引用:
HNaokiさんは書きました:
スクリプトを考えたのですが、方法が考えつかないんです。すみません。


----------------
空野 大二郎 アニメーター作家
桜の道

Sif
Åê¹ÆNo.12847
投稿日時: 2004-11-30 2:57
半人前
居住地: たこ焼き王国
投稿: 36
使用環境:
XP SP2 Home
Pro 7.2
Re: XMLで読み込んだテキストが改行されない
二度目まして

 (当文章の"\"は、"円マーク"に読み替えてください)

XMLに記述されたテキストの"\n"が、読み込み後に
"\\n"となってしまい、改行してくれないという件に関しては、
下記の通りで"\\n"を強引に改行させることができました。
/**
* "\\n"を強引に改行させるスクリプト
*/
var load_str:String = <ココに読み込んだXMLテキスト>;
var index_num:Number = load_str.indexOf("\\n");
// "\\n"がなくなるまで"\\n"をnewlineに変換
while (index_num != -1) {
    var first_str:String = load_str.substring(0, index_num);
    var length_num:Number = "\\n".length;
    var second_str:String = load_str.substring(index_num + length_num);
    load_str = first_str + newline + second_str;
    index_num = load_str.indexOf("\\n");
}

試してみてください。
また、上記のASが最良の記述かどうかは分かりませんが、
これを解読することでHNaokiさんが少しでもステップアップできれば、と思います。
 (私なぞどうぞ踏み台にしてください )

それでは、うまく動作することを祈っております。
 (深夜なので、ボケてたらスイマセン…)
« 1 (2) 3 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

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