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

パスワード:


パスワード紛失

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

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
youich
Åê¹ÆNo.13036
投稿日時: 2004-12-4 13:49
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: XMLで読み込んだテキストが改行されない
引用:


些細なことですが、[chr(number)]コマンドは[使用を避ける言語エレメント]
としてMacromediaが定めておりますので、代わりに[String.fromCharCode()]を
使用された方が良いかと思われます?
 (アゲアシすいません…)
Flashのヘルプに記載されていますので、ご確認ください。
 (youichさんの環境[Flash MX]での記載箇所が分かりませんので
  説明は省略させていただきます)

お、これは失礼しましたSifさんのおっしゃる通り使用を避けるべきものでしたね、ありがとうございます。
これだけではなんなんで、雑談でも(笑)

だいたい、random等のようにFlash4のころの関数のほうが一般的に
処理速度が速いです、chrもString.fromCharCodeより2,3倍速いと思います。

しかし、文字列を作る場合はString.fromCharCodeの方が便利だし
文字コードを配列で用意できる場合等は
String.fromCharCodeの引数に直接配列を渡すと圧倒的に速いです。
失礼しました。


----------------
- yo

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

なるホド!
youichさんの情報より[使用を避ける言語エレメント]と、
その代替エレメントを比較してみると、おもしろいですね?

[chr()]は、引数がひとつだけのため、1文字の処理速度としては早かった。
[random()]は、昔は整数でランダム値を返していたため、同じく早かった。
という感じでしょうか。

youichさん、勉強になりました。
ありがとうございます?
ゲスト
Åê¹ÆNo.29053
投稿日時: 2006-9-30 12:02
Re: XMLで読み込んだテキストが改行されない
こんにちは、初めて投稿させていただきます。

随分前のトピックで恐縮なのですが、現在多言語をサイトを構築しておりまして、XMLでテキストを読み込む作業をしています。言語によって文章の長さが違うので改行が必要になり、やはりXMLを読み込んだ際にXMLファイル内で改行すると行間の幅がダブルスペースぐらいになる問題が起きました。

色々と調べてみたのですが、なかなかよいアイディアが無く、偶然外部CSSファイルを読み込むスクリプトをアクションスクリプトに明記すると、XML内部の「<br/>」タグで改行される事がわかりました。

自分はアクションスクリプトに関してド素人ですので、なぜ今回試した事によって「<br/>」タグがXML>Flashにて使えるようになったのか検討がつきません。 是非皆様のご意見を伺えたらと思います。



/*-----------------AS-------------------*/

System.useCodepage = true;

//load css
myStyle = new TextField.StyleSheet();
//myStyle.load("test.css");

//Apply CSS to text Fields
text_01.styleSheet = myStyle;


//load XML
function loadXML(loaded) {
if (loaded) {
//location in the XML file & OUTPUT
text_01.text = this.firstChild.childNodes[0]//.firstChild;

} else {
trace("file is not loaded!");
}
}
myContent = new XML();
myContent.ignoreWhite = true;
myContent.onLoad = loadXML;
myContent.load("test.xml");

/*------------------------------------*/


上記の通りCSSは反映されていないのでCSSの内容は省略します。
次にXMLです。


/*----------------test.XML-----------------*/
<test_xml>
<top>This is<br/>just a test.</top>
</test_xml>

/*------------------------------------*/


----------------------
This is
just a test.
----------------------
(isの部分で改行されます。)


まず初めに今回使用したアクションスクリプトの一部です。
ご覧のとおりCSSファイルを読み込むスクリプトは明記して
あるのですが、

//myStyle.load("test.css");

の部分をコメントアウトしていますので実際は読み込んでいません。
これはコメントアウトしても問題がなかったという事です。

それからCSSによる

letter-spacing: X em;
word-spacing: X em;
line-height: X %;

などは明記してもFlashには反映されませんでした。

それからXMLを

/*-----------------AS-------------------*/
text_01.text = this.firstChild.childNodes[0]//.firstChild.nodeValue;
/*-----------------AS-------------------*/

上記の様にtext_01というテキストボックスに表示させるのですが、

本来は、

/*-----------------AS-------------------*/
text_01.text = this.firstChild.childNodes[0].firstChild.nodeValue;
/*-----------------AS-------------------*/


と最後の

「firstChild.nodeValue;」

を付ける必要があるのですがコメントアウトしてみました。因みにこの部分があると「<br/>」タグ以降の部分が表示されません。

なぜ上記で「<br/>」が使えるのか全く検討が付かないのですがこれは本来この様に明記するものなのでしょうか? どなたか教えていただけますでしょうか?  宜しくお願いします。
ひろゆき
Åê¹ÆNo.29055
投稿日時: 2006-9-30 12:55
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: XMLで読み込んだテキストが改行されない
まず、なぜ、このスレッドに投稿されたのでしょう?
このスレッド自体は、CSSとは直接関係ないと思われるので、
新規スレッドにされるべきではないでしょうか?

もし、改行コードに関してのスレッドだから、ということであれば...。
引用:
XMLを読み込んだ際にXMLファイル内で改行すると行間の幅がダブルスペースぐらいになる問題が起きました。

この原因は、XMLファイルの改行コードがCR+LFになっているためだと思われますので、
CSS うんぬんは、一旦すべて忘れて、スクリプトからも削除して
さらに、XMLからも<br />を削除して
次の2点のいずれかで試された方がよろしいかと思います。

(1) XML ファイルを保存する際、改行コードを「LF(UNIX)」で保存する。
  #改行コードを選択できるテキスト・エディタを用いてください。

(2) テキストフィールドで表示する際に、改行コードを統一する。
  #テキストボックスというインスタンスはないと思います。
  #テキストフィールドでしょうか?
  #あるいは、TextAreaコンポーネントでしょうか?
function loadXML(loaded:Boolean):Void {
	if (loaded) {
		text_01.text = unifyLineFeedCode(this.firstChild.childNodes[0].firstChild.nodeValue);
	}
}
function unifyLineFeedCode(str:String):String {
	var CR:String = String.fromCharCode(13);
	var LF:String = String.fromCharCode(10);
	str = str.split(CR+LF).join(LF);
	str = str.split(CR).join(LF);
	return str;
}


それから、ヘルプで「サポートされている CSS プロパティ」を確認してください。
word-spacing, line-height はサポートされていないと思います。
また、em という単位も有効ではなく、px で解釈されるのではないかと思います。


引用:
偶然外部CSSファイルを読み込むスクリプトをアクションスクリプトに明記すると、XML内部の「<br/>」タグで改行される事がわかりました。

これについては、上記の改行問題が解決したうえで、
理解できない部分を整理したうえで、別途スレッドを立てられた方が良いでしょう。

でないと、問題が複雑化するだけのように思います。


----------------
質問する際は、回答者に具体的な情報を与えてください。

« 1 2 (3)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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