signalsで event処理を簡単に

20
おおくぼ ひろあき Interactive Designer www.inazumatv.com/contents/ me.beginsprite.com 201172日土曜日

Upload: hiroaki-okubo

Post on 25-May-2015

1.648 views

Category:

Technology


1 download

DESCRIPTION

2011-07-02 福岡ひよこの会発表資料

TRANSCRIPT

Page 1: Signalsで Event処理を簡単に

おおくぼ ひろあきInteractive Designer

www.inazumatv.com/contents/

me.beginsprite.com

2011年7月2日土曜日

Page 2: Signalsで Event処理を簡単に

www.sidevision.co.jp

2011年7月2日土曜日

Page 3: Signalsで Event処理を簡単に

SignalsでEvent処理を簡単に

2011年7月2日土曜日

Page 4: Signalsで Event処理を簡単に

FlashはEventで動くEvents処理は必須

でもコレかなり面倒くさい

2011年7月2日土曜日

Page 5: Signalsで Event処理を簡単に

Eventの使い方Eventにリスナー(関数)を追加関数を定義

必要なくなったらEventからリスナーを削除する

2011年7月2日土曜日

Page 6: Signalsで Event処理を簡単に

01 Sample fan_mc

start_btn.addEventListener(MouseEvent.CLICK, onStartClicked);stop_btn.addEventListener(MouseEvent.CLICK, onStopClicked);

function onStartClicked (e:MouseEvent):void { addEventListener(Event.EXIT_FRAME, onLoop);}function onStopClicked (e:MouseEvent):void { removeEventListener(Event.EXIT_FRAME, onLoop);}function onLoop (e:Event):void { fan_mc.rotation += 5;}

2011年7月2日土曜日

Page 7: Signalsで Event処理を簡単に

01 Sample

addEventListener(Event.EXIT_FRAME, onLoop);

removeEventListener(Event.EXIT_FRAME, onLoop);

ボタンから直接Event操作

2011年7月2日土曜日

Page 8: Signalsで Event処理を簡単に

02 Sample

package com.inazumatv.events{import flash.events.Event;

public class FanEvent extends Event{ public static const FAN_START:String = "fanStart"; public static const FAN_STOP:String = "fanStop"; public function FanEvent(type:String, bubbles:Boolean=true, cancelable:Boolean=false) { super(type, bubbles, cancelable); } override public function clone():Event { return new FanEvent(type, bubbles, cancelable); }}}

カスタムイベント

2011年7月2日土曜日

Page 9: Signalsで Event処理を簡単に

02 Sample

package com.inazumatv.events{import flash.events.Event;

public class FanEvent extends Event{ public static const FAN_START:String = "fanStart"; public static const FAN_STOP:String = "fanStop"; public function FanEvent(type:String, bubbles:Boolean=true, cancelable:Boolean=false) { super(type, bubbles, cancelable); } override public function clone():Event { return new FanEvent(type, bubbles, cancelable); }}}

カスタムイベントを作るのは面倒くさい

Event Type 定数

clone を override

2011年7月2日土曜日

Page 10: Signalsで Event処理を簡単に

03 Samplepackage com.inazumatv.events{import flash.events.Event;

public class FanSpeedEvent extends Event{ public static const CHANGE_SPEED:String = "changeSpeed"; private var _speed:Number; public function FanSpeedEvent(speed:Number, type:String, bubbles:Boolean=true, cancelable:Boolean=false) { _speed = speed; super(type, bubbles, cancelable); } override public function clone():Event { return new FanSpeedEvent(speed, type, bubbles, cancelable); } override public function toString():String { return formatToString("FanSpeedEvent", "speed", "type", "bubbles", "cancelable", "eventPhase") } public function get speed():Number { return _speed; }}}

カスタムイベントに引数

2011年7月2日土曜日

Page 11: Signalsで Event処理を簡単に

03 Samplepackage com.inazumatv.events{import flash.events.Event;

public class FanSpeedEvent extends Event{ public static const CHANGE_SPEED:String = "changeSpeed"; private var _speed:Number; public function FanSpeedEvent(speed:Number, type:String, bubbles:Boolean=true, cancelable:Boolean=false) { _speed = speed; super(type, bubbles, cancelable); } override public function clone():Event { return new FanSpeedEvent(speed, type, bubbles, cancelable); } override public function toString():String { return formatToString("FanSpeedEvent", "speed", "type", "bubbles", "cancelable", "eventPhase") } public function get speed():Number { return _speed; }}}

カスタムイベントに引数

Event Type 定数

clone を override

toString を override

もっと面倒くさい

変数をread可能へ

2011年7月2日土曜日

Page 12: Signalsで Event処理を簡単に

だからSignalsで

Event処理を簡単に

2011年7月2日土曜日

Page 13: Signalsで Event処理を簡単に

Signalsを使うとaddEventListener(listener:Function)removeEventListener(listener:Function)dispatchEvent(new ExampleEvent(ExampleEvent.EVENT_TYPE))

add(listener:Function)addOnce(listener:Function)remove(listener:Function)removeAll()dispatch(... valueObjects)

2011年7月2日土曜日

Page 14: Signalsで Event処理を簡単に

Signalsを使うとadd(listener:Function)addOnce(listener:Function)remove(listener:Function)removeAll()dispatch(... valueObjects)

addWithPriority(listener:Function, priority:int=0)addOnceWithPriority(listener:Function, priority:int=0)

+

2011年7月2日土曜日

Page 15: Signalsで Event処理を簡単に

Signalsを使うとif (stage) init();else new NativeSignal(this, Event.ADDED_TO_STAGE, Event

).addOnce(init);

init関数でremoveの必要がない

2011年7月2日土曜日

Page 16: Signalsで Event処理を簡単に

Signalsを使うとvar accelerate:Signal = new Signal(Number);accelerate.dispatch(speed);

function onAccelerate(speed:Number) {}accelerate.add(onAccelerate);

カスタムイベントがいらない

2011年7月2日土曜日

Page 17: Signalsで Event処理を簡単に

Signals

NativeSignal SignalDeluxeSignal

主要(だと思う)Class

2011年7月2日土曜日

Page 18: Signalsで Event処理を簡単に

Signals

Robert Penner Programming Macromedia Flash MX

mx.motion.easing.*fl.motion.easing.*OOPでスクリプトTween, easing, 3D, Color Transform...etc

github : as3-signalshttps://github.com/robertpenner/as3-signals

2011年7月2日土曜日

Page 19: Signalsで Event処理を簡単に

Signals 参考サイトgithub : as3-signalshttps://github.com/robertpenner/as3-signals/wikihttps://github.com/robertpenner/as3-signals/wiki/_pages

ヒムカンパニーhttp://www.himco.jp/articles.php

inzumatv.comhttp://www.inazumatv.com/contents/archives/tag/signals

2011年7月2日土曜日

Page 20: Signalsで Event処理を簡単に

おおくぼ ひろあき@taikiken

www.inazumatv.com/contents/

me.beginsprite.com

www.sidevision.co.jp

2011年7月2日土曜日