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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     classの中でのonPress等のイベント
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mooooooog
Åê¹ÆNo.34096
投稿日時: 2007-7-11 20:30
新米
居住地:
投稿: 2
使用環境:
WinXP,Flash Pro 8
classの中でのonPress等のイベント
最近ようやくclassを作ってスクリプトを全部外部に書くやり方を勉強しつつやりはじめたのですが、いまいち自信がないので質問させてください。

test_mcというMovieClipをattachしてTestClassというClassを適用してるとします。

test_mcの中にbtn_mcというMovieClipを置いてます。

このbtn_mcが押された時に何かの処理をしたいです。

こういう場合どういうふうに書くのがいいのでしょうか。

思いついたのは

function init():Void{
 this.btn_mc.onPress = function(){
  trace("press");
}
}

という関数をclassの中で実行する。


別途btn_mc用のクラスを作って
その中で
function onPress(){
trace("press");
}

というものなのですが、これがセオリーなのかいまいち自信がありません・・。

よろしくお願いします。
ニノミヤ カズノリ
Åê¹ÆNo.34100
投稿日時: 2007-7-11 21:12
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: classの中でのonPress等のイベント
初めまして。ニノミヤと申します。
多分これはAS2.0のお話ですよね?

test_mcにTestClassというクラスが適用されていて、
test_mc内にbtn_mcが存在するのであれば、
以下のコードで出来ると思います。

class TestClass extends MovieClip
{
  public var btn_mc:MovieClip;
  
  //コンストラクタ
  function Test() {
    btn_mc.onPress = function() {
      trace("press");
    }
  }
}

野中文雄
Åê¹ÆNo.34103
投稿日時: 2007-7-11 21:32
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: classの中でのonPress等のイベント
内容によりけりでしょうね。

btn_mcがTestClassの中でのみ使われるなら前者、btn_mcが単独で使われたり他のクラスで流用されることがあるなら後者にする意味があります。また、btn_mcに定義されるプロパティやメソッドが多く、別のクラスを定義した方が管理しやすいなら後者になるでしょう。
引用:
mooooooogさんは書きました:
思いついたのは
function init():Void{
	this.btn_mc.onPress = function(){
		trace("press");
	}
}

という関数をclassの中で実行する。


別途btn_mc用のクラスを作って
その中で
function onPress(){
	trace("press");
}

というものなのですが、これがセオリーなのかいまいち自信がありません・・。

ただ個人的には、クラス内で名前のない関数を設定すると、コールバックの処理が見分けにくいので、名前をつけて定義する場合が多いです。
function init():Void {
	this.btn_mc.onPress = onPressHandler;  /* function() {
		trace("press");
	}; */
}
function onPressHandler():Void {
	trace("press");
}


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

mooooooog
Åê¹ÆNo.34177
投稿日時: 2007-7-17 17:44
新米
居住地:
投稿: 2
使用環境:
WinXP,Flash Pro 8
Re: classの中でのonPress等のイベント
ニノミヤ カズノリ様
野中様

ご返信ありがとうございます。
私が思いついたもの以外に、コンストラクタに書く手もあったのですね。
確かに無名の関数だとわかりにくいですね。

大変参考になりました。
ありがとうございました。

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

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