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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     CSVから座標を読込んでオブジェクトを動的に生成したい!
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nonan
Åê¹ÆNo.9491
投稿日時: 2004-7-28 11:40
新米
居住地:
投稿: 9
使用環境:
MacOSX(10.3.4)
FlashMX
CSVから座標を読込んでオブジェクトを動的に生成したい!
Flashはまだまだ勉強中なのに、CGIが書き出したCSVデータからムービーを作らなければいけなくなりました。
(初心者板から引っ越してまいりました。)
【詳細】
CGIが書き出すCSV(UTF-8) test.csvはこんな感じです。
X座標,y座標,名前(改行)
x座標,y座標,名前(改行)
でこれを読込んで、リンケージ名"point"のムービークリップオブジェクトに名前を付けて(ダイナミックテキストボックス:変数名nameText)配列の数だけムービー上に動的に生成したいのです。
分からないなりにsampleなんかを参考に次の様なスクリプトをつくったのですが全く言うことを聞いてくれません
myXML = new XML();
myXML.onData = function(sData_str) {
var my_array = _root.lResult_array=sData_str.split("\n").join("").split("\r");
for (var i = 0; i<my_array.length; i++) {
var lTemp_array = my_array[i].split(",");
my_array[i] = my_array[i-1].concat();
_root.attachMovie("point","point"+i,i);
my_array[i]._x = lResult_array[0];
my_array[i]._y =lResult_array[1];
my_array[i].nameText =lResult_array[2];
}
};
myXML.load("test.csv");
ぜんぜん分かってない!と思われると
思いますが、よろしくお願いします。
制作環境はMacOSX FlashMXです。
ゲスト
Åê¹ÆNo.9494
投稿日時: 2004-7-28 13:13
Re: CSVから座標を読込んでオブジェクトを動的に生成したい!
私も初心者ですが、ソースを見て、気になったことをずらずらーっと。

どのような現象がおこっているのでしょうか?^^;
引用:

分からないなりにsampleなんかを参考に次の様なスクリプトをつくったのですが全く言うことを聞いてくれません


これは何をしています?
i=0の場合はmy_array[0]=my_array[-1]となり、
my_array[0]にはundefineが代入されます。
そして、i=1の場合はmy_array[1]=my_array[0]となり、
my_array[1]にはundefineが代入されます。
というわけで、my_arrayの各要素はすべてundefineになってしまいます。
引用:

my_array[i] = my_array[i-1].concat();


my_arrayはMovieClipではないですよね?
my_arrayの_x、_y、_nameTextに値を代入しても何もならないと思います^^;
また、代入する変数はlResult_arrayではなくて、lTemp_arrayではないでしょうか?

attachMovieの戻り値は、新しく作成したMovieClipのインスタンスへの参照です。
それの_x、_y、nameTextに値を代入すればいいと思います。
引用:

_root.attachMovie("point","point"+i,i);
my_array[i]._x = lResult_array[0];
my_array[i]._y =lResult_array[1];
my_array[i].nameText =lResult_array[2];


お互いがんばりましょう^^

ごんざえもん
Åê¹ÆNo.9495
投稿日時: 2004-7-28 13:18
常連
居住地: 北かんとー
投稿: 123
使用環境:
Windows XP SP3
Windows7
Windows VISTA
MacOSX10.6
FlashMX2004
Flash8 pro
Flash CS6 (体験版…)
Re: CSVから座標を読込んでオブジェクトを動的に生成したい!
gonzaemonです。
引用:

nonanさんは書きました:
CGIが書き出すCSV(UTF-8) test.csvはこんな感じです。
X座標,y座標,名前(改行)
x座標,y座標,名前(改行)

ここにある名前というのはインスタンス名ということでしょうか??
仮にインスタンス名だとします・・・。


myXML = new XML();
myXML.onData = function(sData_str) {
  var my_array = _root.lResult_array=sData_str.split("\n").join("").split("\r");
  for (var i = 0; i<my_array.length; i++) {
    var lTemp_array = my_array[i].split(",");
    //my_array[i] = my_array[i-1].concat();
    _root.attachMovie("point",lTemp_array[2],i);
    //my_array[i]._x = lResult_array[0];
    //my_array[i]._y =lResult_array[1];
    //my_array[i].nameText =lResult_array[2]; 
    _root[lTemp_array[2]]._x = lTemp_array[0];
    _root[lTemp_array[2]]._y = lTemp_array[1];
  }
};
myXML.load("test.csv");

これではダメですか?
状況を具体的に教えてください


----------------
gonzaemon

KURAGE
Åê¹ÆNo.9496
投稿日時: 2004-7-28 13:19
常連
居住地: 東京都
投稿: 199
使用環境:
Flash 4?8/Lite 1?2
2000/XP
OSX 10.3
qurage.net
AS2HTML
Re: CSVから座標を読込んでオブジェクトを動的に生成したい!
こんにちは、
全く言うことを聞かないというのは、全く動かないという事でしょうか?
大きく分けて
・CSV読み込み
・pointを複製
・複製したMCにデータをセット
のような流れになるかと思いますが、どこでつまずいているのか解らないと
返答し辛いかと思います(・ω・`

とりあえず参考までにスクリプト書いてみました


myXML = new XML();
myXML.onData = function(sData) {
	// CSVを行ごと配列に
	var myArray = sData.split("\n").join("").split("\r");

	// 一行ずつ処理
	for (var i = 0; i<myArray.length; i++) {
		var col = myArray[i].split(",");	
		var obj = root.attachMovie("point","point"+i,i);
		obj._x = col[0];			
		obj._y = col[1];
		obj.nameText =col[2]; 
	}
}
myXML.load("test.csv");

nonan
Åê¹ÆNo.9500
投稿日時: 2004-7-28 13:49
新米
居住地:
投稿: 9
使用環境:
MacOSX(10.3.4)
FlashMX
Re: CSVから座標を読込んでオブジェクトを動的に生成したい!
kz-wingさん
早速のレス、ありがとうございました。
引用:

どのような現象がおこっているのでしょうか?^^;


まったく何も起こらないというか、(0,0)のポイントにはMovieClipができているのですが...
それ以上はなのも起こらないのです。
引用:

これは何をしています?
i=0の場合はmy_array[0]=my_array[-1]となり、
my_array[0]にはundefineが代入されます。
そして、i=1の場合はmy_array[1]=my_array[0]となり、
my_array[1]にはundefineが代入されます。
というわけで、my_arrayの各要素はすべてundefineになってしまいます。


ありがとうございます。
なるほど、
これは私がよく理解せずに他のスクリプトを
借用してきたのが原因のようです。
すみませんでした。

引用:

my_arrayはMovieClipではないですよね?
my_arrayの_x、_y、_nameTextに値を代入しても何もならないと思います^^;
また、代入する変数はlResult_arrayではなくて、lTemp_arrayではないでしょうか?
attachMovieの戻り値は、新しく作成したMovieClipのインスタンスへの参照です。
それの_x、_y、nameTextに値を代入すればいいと思います。


もうお恥ずかしいかぎり…
配列に値を代入とは…
ご丁寧にご指摘ありがとうございました。

引用:

お互いがんばりましょう^^


ありがとうございました
nonan
Åê¹ÆNo.9501
投稿日時: 2004-7-28 13:59
新米
居住地:
投稿: 9
使用環境:
MacOSX(10.3.4)
FlashMX
Re: CSVから座標を読込んでオブジェクトを動的に生成したい!
gonzaemon0さん
レス、ありがとうございます。

引用:

ここにある名前というのはインスタンス名ということでしょうか??
仮にインスタンス名だとします・・・。

インスタンス名ではなくて、
動的に生成するMcに付けたいラベルで、日本語で記述してあり、これをMcのダイナミックテキストボックスで表示させたいのです。

(スクリプト省略)
引用:

これではダメですか?
状況を具体的に教えてください


動きました
しかし、1行目の配列の分だけ表示されて、2行目以降が表示されません。ラベルに_level0.test200.nameTextと出ているのは先の“名前をインスタンスに仮定”したのが原因でしょうか?

for文でmy_arrayの行数分だけ繰り返すはずなのにどうしてでしょうか?
nonan
Åê¹ÆNo.9502
投稿日時: 2004-7-28 14:13
新米
居住地:
投稿: 9
使用環境:
MacOSX(10.3.4)
FlashMX
Re: CSVから座標を読込んでオブジェクトを動的に生成したい!
KURAGEさん
レス、ありがとうございます。

引用:

全く言うことを聞かないというのは、全く動かないという事でしょうか?



動的にMcを生成しようとしているのですが、それが全く…

引用:

どこでつまずいているのか解らないと
返答し辛いかと思います(・ω・`
とりあえず参考までにスクリプト書いてみました


すみません、つまづいているところが分からなくて

(スクリプト省略)

うごきました!
が、やはり1行目分の情報しか生成されませんでした。

さらにやはりMc上に表示させようとしていたラベルがおかしい…
実は、test.csvの中身ですが、

引用:

100,300,test
200,400,test
500,500,test
210,200,test


としていたら、ラベルにtest200と表示されたのです。
これはCSVの記述方法がまずいのでしょうか?
改行が正しく認識されていない…UTF-8で書き出しているのですが

なにか思い当たる事がございましたら、
ご指摘おねがいします。
ごんざえもん
Åê¹ÆNo.9503
投稿日時: 2004-7-28 14:21
常連
居住地: 北かんとー
投稿: 123
使用環境:
Windows XP SP3
Windows7
Windows VISTA
MacOSX10.6
FlashMX2004
Flash8 pro
Flash CS6 (体験版…)
Re: CSVから座標を読込んでオブジェクトを動的に生成したい!
for文内に
trace(i);
といれて、何回処理されているかを調べてみて下さい。

また、for文直前に
trace(my_array.length);
といれて出力させてみて下さい。


----------------
gonzaemon

nonan
Åê¹ÆNo.9504
投稿日時: 2004-7-28 14:37
新米
居住地:
投稿: 9
使用環境:
MacOSX(10.3.4)
FlashMX
Re: CSVから座標を読込んでオブジェクトを動的に生成したい!
gonzaemon0さん
ありがとうございます。

引用:

for文内に
trace(i);
といれて、何回処理されているかを調べてみて下さい。


0 と出力されました。

引用:

また、for文直前に
trace(my_array.length);
といれて出力させてみて下さい。


undefined
0 と出力されました。

つまり1回目の処理で終わっているって事ですよね
なぜでしょうか?
ごんざえもん
Åê¹ÆNo.9505
投稿日時: 2004-7-28 14:47
常連
居住地: 北かんとー
投稿: 123
使用環境:
Windows XP SP3
Windows7
Windows VISTA
MacOSX10.6
FlashMX2004
Flash8 pro
Flash CS6 (体験版…)
Re: CSVから座標を読込んでオブジェクトを動的に生成したい!
引用:

引用:

また、for文直前に
trace(my_array.length);
といれて出力させてみて下さい。

undefined
0 
と出力されました。

すいません私のスペルミスです
trace(my_Array.length);
でした。たぶん「1」が出力されます。
改行コードが怪しいですねぇ
私の方では問題ありませんが・・・


----------------
gonzaemon

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

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