forked from: ダブルクリックとシングルクリックの判定
forked from ダブルクリックとシングルクリックの判定 (diff: 44)
Progressionのコマンドを使わせてもらったけど、全然ダメですね。。。 SingleClick と DoubleClick の差がなんなのかを理解しないとダメっぽい。 もっとシンプルかスマートに書く方法あるんでしょうか?
ActionScript3 source code
/**
* Copyright djakarta_trap ( http://wonderfl.net/user/djakarta_trap )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/durZ
*/
//Progressionのコマンドを使わせてもらったけど、全然ダメですね。。。
//SingleClick と DoubleClick の差がなんなのかを理解しないとダメっぽい。
// forked from dkgkAs's ダブルクリックとシングルクリックの判定
//もっとシンプルかスマートに書く方法あるんでしょうか?
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.utils.Timer;
import jp.progression.commands.*;
import jp.progression.commands.lists.*;
public class ClickTest extends Sprite
{
private var _delay:int = 200;
private var _isDoubleClicked:Boolean = false;
private var _clickCommand:SerialList;
private var _clickExecutor:SerialList;
private var _tf:TextField = new TextField();
public function ClickTest()
{
_tf.text = "ステージをクリック or ダブルクリック";
_tf.width = 300;
_tf.autoSize = "left";
_tf.wordWrap = true;
addChild(_tf);
_clickCommand = new SerialList();
_clickExecutor = new SerialList( null,
0.2,
_clickCommand
);
_init();
}
private function _init():void
{
stage.doubleClickEnabled = true;
stage.addEventListener(MouseEvent.CLICK, _singleClickHandler);
stage.addEventListener(MouseEvent.DOUBLE_CLICK, _doubleClickHandler);
}
private function _singleClickHandler(event:MouseEvent):void
{
_clickCommand.clearCommand(true);
_clickCommand.addCommand(
function():void{ _tf.appendText("singleClick");}
);
_clickExecutor.execute();
}
private function _doubleClickHandler(event:MouseEvent):void
{
if(_clickExecutor.state == 2) _clickExecutor.interrupt();
_clickCommand.clearCommand(true);
_clickCommand.addCommand(
function():void{ _tf.appendText("doubleClick");}
);
_clickExecutor.execute();
}
}
}
