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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     違う名前でテキストフィールドを複数生成したい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
reimy
Åê¹ÆNo.44930
投稿日時: 2010-5-14 19:46
新米
居住地:
投稿: 10
使用環境:
Windows7
Flashのバージョン Flash CS3
ActionScriptのバージョン ActionScript3.0
違う名前でテキストフィールドを複数生成したい
配列xmlNameの値をfor eachで取り出して、その値のTextFieldを作成したいのですが、「1067: 型 flash.text:TextField の値が、関連しない型 Class に暗黙で型変換されています。」とエラーが出ます。

var xmlName = new Array("red", "green", "yellow");
for each (var k:String in xmlName){
k:TextField = new TextField();
}

おそらく「k:TextField」の辺りがエラーらしいです(kという名前の
TextFieldを作ろうとしているから?)が、どうすればred、green、yellowという名前のテキストフィールドを一括で複数生成できるでしょうか。for eachにはこだわりませんが、宜しくお願いします。
野中文雄
Åê¹ÆNo.44932
投稿日時: 2010-5-14 23:15
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 違う名前でテキストフィールドを複数生成したい
この書き方では、ひとつでも「生成」できません。文法をもう1度よくお確かめください。
var k:String = "red";
k:TextField = new TextField();
//
var red;
var k2 = "red";
k2 = new TextField();
trace(k2, red);
//
var green;
var k3:String = "green";
k3 = "red";
trace(k3, typeof k3, green);

引用:
reimyさんは書きました:
おそらく「k:TextField」の辺りがエラーらしいです(kという名前の
TextFieldを作ろうとしているから?)が、どうすればred、green、yellowという名前のテキストフィールドを一括で複数生成できるでしょうか。for eachにはこだわりませんが、宜しくお願いします。


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

reimy
Åê¹ÆNo.44939
投稿日時: 2010-5-16 11:54
新米
居住地:
投稿: 10
使用環境:
Windows7
Flashのバージョン Flash CS3
ActionScriptのバージョン ActionScript3.0
Re: 違う名前でテキストフィールドを複数生成したい
Fumioさんありがとうございます。
for文に改めました。

var Name = new Array("red", "green", "yellow");

for (var i=0; i<Name.length; i++) {
Name[i] = new TextField();
stage.addChild(Name[i]);
}

ここまではエラーがでないですが
しかし、Name[i]は変数名のはずなのに代入できないです。
red.text="test";
エラーは
1120: 未定義のプロパティ red へのアクセスです。となります。
むつかしですね。
野中文雄
Åê¹ÆNo.44941
投稿日時: 2010-5-16 17:05
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 違う名前でテキストフィールドを複数生成したい
問題は単純化すべきです。今回の問題に「for文」は関係ありません。それが理解できるまで、余計な要素は外しましょう。
引用:
reimyさんは書きました:
for文に改めました。

先に回答差上げたスクリプトの意味は、おわかりになりましたか。
var red;
var k2 = "red";
k2 = new TextField();
trace(k2, red);
//
var green;
var k3:String = "green";
k3 = "red";
trace(k3, typeof k3, green);

「Name[i]は変数名のはず」はありません。「未定義のプロパティ red へのアクセス」というのは、redなどという変数は存在しないという意味です。
var Name:Array = new Array("red");
trace(Name, Name.length);
var i:int = 0;
Name[i] = new TextField();
trace(Name, Name.length);
//
Name = new Array();
Name[i] = "red";
trace(Name, Name.length);
Name[i] = new TextField();
trace(Name, Name.length);

引用:
しかし、Name[i]は変数名のはずなのに代入できないです。
red.text="test";
エラーは
1120: 未定義のプロパティ red へのアクセスです。となります。

「for文」も配列も一旦脇において、「変数」の定義について復習されることをお勧めします。


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

reimy
Åê¹ÆNo.45360
投稿日時: 2010-7-26 21:49
新米
居住地:
投稿: 10
使用環境:
Windows7
Flashのバージョン Flash CS3
ActionScriptのバージョン ActionScript3.0
Re: 違う名前でテキストフィールドを複数生成したい
わかりました。
「変数」の定義について分かるまで勉強します。
いろいろお世話になりました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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