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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     基本クラスへ引数を与える
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
theOne
Åê¹ÆNo.40306
投稿日時: 2008-9-17 10:25
新米
居住地:
投稿: 9
使用環境:
WinXP Vista
MacOSX
Flash CS3
基本クラスへ引数を与える
基本クラスへの引数の与え方を教えてください。

シンボル1?100まで用意して、それぞれMyClass1?100のクラス名でリンケージします。
クラス定義は自動生成にして、基本クラスはMovieClipをextendsしたBaseClassを設定します。

MyClass1をaddChildする時は、
var newMc:MyClass1 = new MyClass1();
addChild(newMc);
の用に記述すると思いますが、

MyClass1を呼ぶ時、BaseClassに引数を与えられないでしょうか?
var container:MovieClip = parent;
var newMc:MyClass1 = new MyClass1(container);
addChild(newMc);
の用にしたいのですが
「引数の数が一致しません」とエラーになってしまいます。
BaseClassのコンストラクタは
public function BaseClass(_myContainer:MovieClip = null) {
・・・
}
と記述しています。


よろしくお願いします。


(シンボル1?100はデザインが違うだけで同じ動作をするので、
クラス定義は自動生成にして基本クラスに共通の動作を記述したBaseClassを設定したのですが
そもそもこのやり方って合っているのでしょうか?)

Tonpoo (gaienboy改め)
Åê¹ÆNo.40307
投稿日時: 2008-9-17 10:49
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: 基本クラスへ引数を与える
gaienboyです。

public function BaseClass(_myContainer:MovieClip = null) {
・・・
}


上記の赤字部分のような書き方を初めて見たんですけど、これって文法的に正しい
んでしょうか?


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

theOne
Åê¹ÆNo.40309
投稿日時: 2008-9-17 11:04
新米
居住地:
投稿: 9
使用環境:
WinXP Vista
MacOSX
Flash CS3
Re: 基本クラスへ引数を与える
「引数がなければ _myContainerにnullを代入」 だと思って記述してます。
特にエラーにならないのですが、なにか危険でしょうか???

引用:

gaienboyさんは書きました:
gaienboyです。

public function BaseClass(_myContainer:MovieClip = null) {
・・・
}


上記の赤字部分のような書き方を初めて見たんですけど、これって文法的に正しい
んでしょうか?
Tonpoo (gaienboy改め)
Åê¹ÆNo.40310
投稿日時: 2008-9-17 11:10
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: 基本クラスへ引数を与える
引用:
theOneさんは書きました:
「引数がなければ _myContainerにnullを代入」 だと思って記述してます。
特にエラーにならないのですが、なにか危険でしょうか???


あ、いえ、浅学のため、「引数がなければ」という条件として、()の中でそうい
った記述をするやり方を初めて見たために、個人的に違和感を感じただけで、特に
それが文法的におかしいとか本件の原因であるとかの確信や裏付けがあるわけでは
ありませんでした(汗)。どうも失礼しました。


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

theOne
Åê¹ÆNo.40311
投稿日時: 2008-9-17 11:15
新米
居住地:
投稿: 9
使用環境:
WinXP Vista
MacOSX
Flash CS3
Re: 基本クラスへ引数を与える
私は独学な部分が多く、自分でも確証がなかったりしますので
怪しい部分を指摘して頂けるだけでも助かります。
ありがとうございます

引用:

gaienboyさんは書きました:

あ、いえ、浅学のため、「引数がなければ」という条件として、()の中でそうい
った記述をするやり方を初めて見たために、個人的に違和感を感じただけで、特に
それが文法的におかしいとか本件の原因であるとかの確信や裏付けがあるわけでは
ありませんでした(汗)。どうも失礼しました。
野中文雄
Åê¹ÆNo.40324
投稿日時: 2008-9-17 18:55
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 基本クラスへ引数を与える
「自動生成」されるクラスは、引数を受取りません。落着いて、理屈で考えましょう。

クラスMyClass1を、つぎのように定義したとします。それでも、スーパークラスBaseClassのコンストラクタには、引数は渡りません。MyClass1のコンストラクタは、受取った引数をどうすればいいのか何の指示も記述も与えられていないからです(引数は必ずスーパークラスに渡さなければならない決まりもありません)。
package {
	public class MyClass1 extends BaseClass {
		public function MyClass1(_myContainer:MovieClip = null) {
		}
	}
}

ましてや、「自動生成」されるクラスには、そもそも引数が指定されません。

クラスMyClass1ほかをきちんと定義するか、スーパークラスBaseClassにメソッドを定義するなどして必要な値を渡すしかないでしょう。
引用:
theOneさんは書きました:
シンボル1?100まで用意して、それぞれMyClass1?100のクラス名でリンケージします。
クラス定義は自動生成にして、基本クラスはMovieClipをextendsしたBaseClassを設定します。
...[中略]...
MyClass1を呼ぶ時、BaseClassに引数を与えられないでしょうか?
var container:MovieClip = parent;
var newMc:MyClass1 = new MyClass1(container);
addChild(newMc);
の用にしたいのですが
「引数の数が一致しません」とエラーになってしまいます。
BaseClassのコンストラクタは
public function BaseClass(_myContainer:MovieClip = null) {
・・・
}
と記述しています。


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

theOne
Åê¹ÆNo.40325
投稿日時: 2008-9-17 19:12
新米
居住地:
投稿: 9
使用環境:
WinXP Vista
MacOSX
Flash CS3
Re: 基本クラスへ引数を与える
野中様 お返事ありがとうございます。
やはり自動生成されたクラスに引数を与えるのは無理なんですね。
MyClass1?100全てを定義するのは手間なので、
スーパークラスBaseClassにメソッドを定義して対処する事にします。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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