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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     ActionScript 3.0ではどう書くの?
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Fumio
Åê¹ÆNo.30007
投稿日時: 2006-11-15 23:39
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: ActionScript 3.0ではどう書くの?
functionの入れ子というのは、見やすくない面もあります。そういう場合、ActionScript 2.0でも、ふたつの関数に分けて書くこともできるでしょう。
var counter:Number;
function onRelease():Void {
	counter = 0;
	onEnterFrame = enterFrame;
}
function enterFrame():Void {
	trace(++counter);
	if (counter>10) {
		delete onEnterFrame;
	}
}

引用:
shikadaさんは書きました:
AS2では
onRelease = function(){
  var counter:Number = 0;
  onEnterFrame = function(){
    trace(++counter);
    if(counter>10){
      delete onEnterFrame;
    }
  }
}

のように、ひとつの関数内で完結できますが、

以下のActionScript 3.0の記述で、とくに問題はないと思います。処理が2段階になる訳ですから、関数がふたつあって不思議はありません。
引用:
AS3では
var counter:int;
addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);

function mouseUpHandler (e:MouseEvent):void{
  counter=0;
  addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}

function enterFrameHandler(e:Event):void{
  trace(counter++);
  if(counter>10){
    removeEventListener(Event.ENTER_FRAME,enterFrameHandler);
  }
}

のように、
一度ボタン押下イベント関数を呼んでから更に
EntarFrameイベント関数を呼んであげなくちゃならない、
という認識なのですが、
ソースが冗長な感が否めません。
こういう書き方だと関数が矢鱈多くなってしまいそうなんですが、
認識としては合っていますでしょうか?

ひとつにまとめれば「シンプル」かは、多分に疑問はありますけど。
var counter:int;
addEventListener(MouseEvent.MOUSE_UP,
	function(e:MouseEvent):void {
		counter=0;
		addEventListener(Event.ENTER_FRAME,
			function(e:Event):void {
				trace(++counter);
				if (counter>10) {
					removeEventListener(Event.ENTER_FRAME, arguments.callee);
				}
			}
		);
	}
);

引用:
もっとシンプルに書ける方法、
別な書き方とかあるのでしょうか?


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

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   ActionScript 3.0ではどう書くの? Fumio 2006-7-22 11:42
     Re: ActionScript 3.0ではどう書くの? Fumio 2006-7-22 11:45
       Re: ActionScript 3.0ではどう書くの? ymori 2006-7-22 12:33
         Re: ActionScript 3.0ではどう書くの? kahiro 2006-7-22 13:36
       Re: ActionScript 3.0ではどう書くの? rindo 2006-7-22 17:45
         Re: ActionScript 3.0ではどう書くの? Fumio 2006-7-22 18:43
           Re: ActionScript 3.0ではどう書くの? rindo 2006-7-22 18:57
           Re: ActionScript 3.0ではどう書くの? rindo 2006-7-30 14:04
             Re: ActionScript 3.0ではどう書くの? Fumio 2006-7-30 20:47
               Re: ActionScript 3.0ではどう書くの? rindo 2006-7-30 21:19
     Re: ActionScript 3.0ではどう書くの? Fumio 2006-10-7 23:23
       Re: ActionScript 3.0ではどう書くの? shikada 2006-11-15 17:14
       » Re: ActionScript 3.0ではどう書くの? Fumio 2006-11-15 23:39
           Re: ActionScript 3.0ではどう書くの? shikada 2006-11-16 9:35

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