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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     改行記号を消すには
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
hiruma
Åê¹ÆNo.20981
投稿日時: 2005-10-22 20:52
半人前
居住地:
投稿: 42
使用環境:
Win2000 + MX pro 2004
MacOS10.2 + MX
改行記号を消すには
\nで改行させた文字を含む変数を、\nだけをなくしたいのですが、splitで配列にいれてjoinで結合させようかと思いましたが、splitで配列に格納できません。
undefinedになってしまいます。
chr2=string1.split("\n");
yoko=chr2.join("");
としてますが、traceするとchr2[0]にそのまま改行付の文字が格納されます。
string1のほうは
len=textfield.length;
tate="";
for(i=0;i<len;i++){
chr=string1.charAt(i);
tate+=chr+"\n";
}
要するに縦文字と横文字の切り替えなのですが、\nを消して改行なしに直す方法はないでしょうか。

MX2004+Win2000です。
よろしくお願いいたします。
ゲスト
Åê¹ÆNo.20982
投稿日時: 2005-10-22 21:12
Re: 改行記号を消すには
こんにちは。

chr2=string1.split("\\n");

ではどうでしょうか?

\でエスケープされてしまうのではないかとおもうんです。
hiruma
Åê¹ÆNo.20983
投稿日時: 2005-10-22 21:19
半人前
居住地:
投稿: 42
使用環境:
Win2000 + MX pro 2004
MacOS10.2 + MX
Re: 改行記号を消すには
ご回答ありがとうございます。
早速試してみましたが、変わりませんでした。
他にお気づきの点がありましたらよろしくお願いいたします。
野中文雄
Åê¹ÆNo.20984
投稿日時: 2005-10-22 21:30
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 改行記号を消すには
現象が再現できません。
引用:
hirumaさんは書きました:
\nで改行させた文字を含む変数を、\nだけをなくしたいのですが、splitで配列にいれてjoinで結合させようかと思いましたが、splitで配列に格納できません。

何がundefinedになるのでしょうか? 配列ですか。結合後の文字列ですか?
引用:
undefinedになってしまいます。

変数の文字列を、つぎのように設定しました。
string1 = "line0\n";
string1 += "line1\n";
string1 += "line2";
引用:
chr2=string1.split("\n");
yoko=chr2.join("");

としてますが、traceするとchr2[0]にそのまま改行付の文字が格納されます。

trace(string1);
// [出力]:
line0
line1
line2
// [デバッグ] > [変数のリストアップ]:
変数 _level0.string1 = "line0\nline1\nline2"
変数 _level0.chr2 = [オブジェクト #1, クラス 'Array'] [
    0:"line0",
    1:"line1",
    2:"line2"
  ]
変数 _level0.yoko = "line0line1line2"

Flash MX 2004/Mac OS X.3.9 & Windows XP (SP1)です。


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

hiruma
Åê¹ÆNo.20985
投稿日時: 2005-10-22 22:09
半人前
居住地:
投稿: 42
使用環境:
Win2000 + MX pro 2004
MacOS10.2 + MX
Re: 改行記号を消すには
そうですかー
わかりました。
もうちょっと見直してみます。
ありがとうございました。
hiruma
Åê¹ÆNo.20994
投稿日時: 2005-10-23 18:50
半人前
居住地:
投稿: 42
使用環境:
Win2000 + MX pro 2004
MacOS10.2 + MX
Re: 改行記号を消すには
すいません。相変わらずsplitできなくて悩んでいるのですが、ちょっと気になったことがあったので質問なのですが、ユーザーに入力させた文字列を縦書きにしたり横書きにさせたりしたいのですが、

まず入力させるときは
(実際に使用しているソースです。昨日と違います。すいません。)
len=_parent.text1.textfield.length;
tate="";
for(i=0;i<len;i++){
chr=_parent.text1.string1.charAt(i);
tate+=chr+"\n";
}
_parent.text1.textfield.text=tate;

text1というMCの中にtextfieldというテキスト入力を配置し、その変数名がstring1です。
変数名で取得したユーザーが入力したテキストを1文字づつ間に\nを入れてtextプロパティに入れています。

で、横書きに直すときには
chr=_parent.text1.string1;
chr2=chr.split("\n");
yoko=chr2.join("");

_parent.text1.textfield.text=yoko;

としていますが、_parent.text1.string1には縦書きの文字列があるのですが、

trace(chr.indexOf("\n"));
として改行記号の数を検索すると-1が返されます。

ちなみに
//chr=_parent.text1.string1;
chr="あ\nい\nう\nえ\nお";
chr2=chr.split("\n");
yoko=chr2.join("");

のようにするときちんと横書きになります。
変数と.textプロパティの関係をよく理解していないのですが、このあたりが問題でしょうか。
よろしくお願いいたします。
ひろゆき
Åê¹ÆNo.20995
投稿日時: 2005-10-23 19:47
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 改行記号を消すには
引用:
text1というMCの中にtextfieldというテキスト入力を配置し、その変数名がstring1です。

この「textfield」というのは、テキスト入力のインスタンス名でしょうか?

もし、そうだとしたら、テキストフィールドの
プロパティ インスペクタ(テキストフィールドの設定をするパネル)で、
インスタンス名と変数名をともに記入されていませんか?


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

hiruma
Åê¹ÆNo.20996
投稿日時: 2005-10-23 19:52
半人前
居住地:
投稿: 42
使用環境:
Win2000 + MX pro 2004
MacOS10.2 + MX
Re: 改行記号を消すには
すいません。
私なりに精一杯説明しているつもりなのですが、なにぶん初心者なもので・・・

おっしゃるとおり、インスタンス名と変数名をともに記入しています。
インスタンス名がtextfield、変数名がstring1です。

よろしくお願いします。
ひろゆき
Åê¹ÆNo.20997
投稿日時: 2005-10-23 20:16
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 改行記号を消すには
引用:
おっしゃるとおり、インスタンス名と変数名をともに記入しています。
インスタンス名がtextfield、変数名がstring1です。

text1 内に配置しているテキストフィールドは、1つだけで、
その1つのテキストフィールドに、インスタンス名と変数名をつけているのですか?

だとしたら、string1 を削除して空欄にして、
まずは、スクリプト内の string1 の部分は、textfield.text にされては?
Tech Lab: テキストフィールドの変数


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

hiruma
Åê¹ÆNo.20998
投稿日時: 2005-10-23 20:48
半人前
居住地:
投稿: 42
使用環境:
Win2000 + MX pro 2004
MacOS10.2 + MX
Re: 改行記号を消すには
string1 を削除してtextfield.textにしてみました。
動作は同じで、縦はできるのですが、横に戻せません。

試しに縦を作るときの変数tateを_root.tateとして直接読み込んでみましたがこちらも同様の動きで、どうも縦の文字列を作るときの

for(i=0;i<len;i++){
chr=_parent.text1.textfield.text.charAt(i);
tate+=chr+"\n";
}

ここに問題があるような気がしてなりません。
何か他の方法で1文字おきに改行記号を入れる方法はないでしょうか。

よろしくお願いいたします。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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