メイン コーダーズルーム【スクリプト系】 XMLで読み込んだテキストが改行されない | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ひろゆき | Åê¹Æ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コンポーネントでしょうか?
それから、ヘルプで「サポートされている CSS プロパティ」を確認してください。 word-spacing, line-height はサポートされていないと思います。 また、em という単位も有効ではなく、px で解釈されるのではないかと思います。 引用: 偶然外部CSSファイルを読み込むスクリプトをアクションスクリプトに明記すると、XML内部の「<br/>」タグで改行される事がわかりました。 これについては、上記の改行問題が解決したうえで、 理解できない部分を整理したうえで、別途スレッドを立てられた方が良いでしょう。 でないと、問題が複雑化するだけのように思います。
|
ゲスト | Åê¹Æ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/>」が使えるのか全く検討が付かないのですがこれは本来この様に明記するものなのでしょうか? どなたか教えていただけますでしょうか? 宜しくお願いします。 |
|
Sif | Åê¹ÆNo.13042 投稿日時: 2004-12-4 20:01 |
半人前 居住地: たこ焼き王国 投稿: 36
使用環境:
XP SP2 Home Pro 7.2 |
Re: XMLで読み込んだテキストが改行されない こんにちは。
なるホド! youichさんの情報より[使用を避ける言語エレメント]と、 その代替エレメントを比較してみると、おもしろいですね? [chr()]は、引数がひとつだけのため、1文字の処理速度としては早かった。 [random()]は、昔は整数でランダム値を返していたため、同じく早かった。 という感じでしょうか。 youichさん、勉強になりました。 ありがとうございます? |
youich | Åê¹ÆNo.13036 投稿日時: 2004-12-4 13:49 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: XMLで読み込んだテキストが改行されない 引用:
お、これは失礼しましたSifさんのおっしゃる通り使用を避けるべきものでしたね、ありがとうございます。 これだけではなんなんで、雑談でも(笑) だいたい、random等のようにFlash4のころの関数のほうが一般的に 処理速度が速いです、chrもString.fromCharCodeより2,3倍速いと思います。 しかし、文字列を作る場合はString.fromCharCodeの方が便利だし 文字コードを配列で用意できる場合等は String.fromCharCodeの引数に直接配列を渡すと圧倒的に速いです。 失礼しました。
|
Sif | Åê¹ÆNo.13024 投稿日時: 2004-12-4 1:44 |
半人前 居住地: たこ焼き王国 投稿: 36
使用環境:
XP SP2 Home Pro 7.2 |
Re: XMLで読み込んだテキストが改行されない こんにちは。
(文中の"\"は円マークに読み替えてください) yoshi04さん、おめでとうございます? youichさん、ありがとうございます? 解決されてバンザイなのですが、ぢつは自分自身の前回の書き込みで 試した手順に少し不思議な点がありましたので、報告させていただきます。
と前回書きましたが、本日再チャレンジしたところ、キチンと"\r\n"を"\n"に 置換することができました。 「はて? 」 と思い、前回に試したことを思い出してみると、
という感じでした。 改行コードは、テキストフィールドに代入した時点で 見えないチカラが働いてしまうのでしょうか。 不思議デス… 何なのでしょう P.S. youichさんへ 些細なことですが、[chr(number)]コマンドは[使用を避ける言語エレメント] としてMacromediaが定めておりますので、代わりに[String.fromCharCode()]を 使用された方が良いかと思われます? (アゲアシすいません…) Flashのヘルプに記載されていますので、ご確認ください。 (youichさんの環境[Flash MX]での記載箇所が分かりませんので 説明は省略させていただきます) |
yoshi04 | Åê¹ÆNo.13007 投稿日時: 2004-12-3 15:53 |
半人前 居住地: 大阪府 投稿: 39
使用環境:
win2000,Flash MX 2004 pro |
Re: XMLで読み込んだテキストが改行されない youichさんご丁寧に本当にありがとうございます。 引用:
|
youich | Åê¹ÆNo.13004 投稿日時: 2004-12-3 14:09 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: XMLで読み込んだテキストが改行されない 引用:
yoshi04さんのアクションスクリプトの書き方がおかしいんじゃないと思いますよ(笑) yoshi04さんがポストされたアプリケーションから書き出されているというXMLファイルの 空白の部分が全角の空白になっているからです。 全角の空白を□で表すと↓のようになっています。
全角の空白はignoreWhiteをtrueに設定していても 意味のあるテキストノードとして処理されます。 で、私はこれをポストされた時のミスかバグだろうと考えて 全角の空白を半角の空白として考えてコードを書きました。 もしこの空白がミスじゃなく意味のあるものならば先にポストしたコードは 以下のようにcommentノードを探すのにもうひとつ(nextSibling)進める必要があります。
ついでに、いきさつが良く解るようなテストコードです。
出力
引用:
あら、最初のスレッドとは違うかったのですね、 先ほどはいっしょくたにポストしてすみませんでした。
|
yoshi04 | Åê¹ÆNo.13002 投稿日時: 2004-12-3 12:53 |
半人前 居住地: 大阪府 投稿: 39
使用環境:
win2000,Flash MX 2004 pro |
Re: XMLで読み込んだテキストが改行されない 引用:
Sifさんの試された下記のコードでできました? node = convSentence(node, "\r\n", "\n"); youichさんから教えていただいたコードではうまくいきませんでした。 まだアクションスクリプトをあまり理解していないので僕の書き方に問題があるのかも 解決していたスレッドに投稿して申し訳ありませんでした。 空野さんSifさんyouichさんどうも有り難うございました。 |
yoshi04 | Åê¹ÆNo.12999 投稿日時: 2004-12-3 9:24 |
半人前 居住地: 大阪府 投稿: 39
使用環境:
win2000,Flash MX 2004 pro |
Re: XMLで読み込んだテキストが改行されない こんにちは。いつもお世話になっています。
空野さんSifさんyouichさん返信どうも有り難うございます。 引用:
そうなんです。 ━━━━━━━━━━━━━━━━ サイドブラシ使用時:690mm サイドブラシ未使用時:500mm ━━━━━━━━━━━━━━━━ というふうに表示したいんですけど、一行余分に空いてしまいます。 youichさんのコードで試してみます。 みなさんどうも有り難うございます。 |
youich | Åê¹ÆNo.12996 投稿日時: 2004-12-3 4:46 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: XMLで読み込んだテキストが改行されない 引用:
私はMacなので意識することはないのですが、 windowsの改行は"\r\n"で、Flashは"\r"も"\n"も改行と認識しますので、 xmlに限らずloadVars等でもwindowsで作ったtextデータを Flashで読みこむと一行開いた状態になるはずだと思います。 で、それは"\r\n"->"\n" or "\r\n"->"\r"の置換で空行を消せると思うのですが。。。 ↓ではうまくいかないですか?
あ、逆に最初はXMLのtextが改行されないという話題だったんですねー そこは改行コードをHTMLエンティティ化してやればどうなんでしょう?("&"全角にしてます)
|
(1) 2 3 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |