AS3 Signals test
based on great video tutorial: http://johnlindquist.com/2010/01/21/as3-signals-tutorial/
Not working!
AS3 Signals isn't in wonderfl.net library
download: http://github.com/robertpenner/as3-signals
♥0 |
Line 98 |
Modified 2010-10-20 10:18:54 |
MIT License
archived:2017-03-20 11:45:14
ActionScript3 source code
/**
* Copyright djankey ( http://wonderfl.net/user/djankey )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/xdqD
*/
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import org.osflash.signals.events.GenericEvent;
public class FlashTest extends Sprite {
private var tester:TestSignal;
private var runTime:int = 0;
private var outputText:TextField = new TextField();
public function FlashTest() {
outputText.x = 150;
outputText.y = 10;
outputText.background = true;
outputText.width = 300;
outputText.wordWrap = true;
outputText.multiline = true;
outputText.autoSize = TextFieldAutoSize.LEFT;
addChild(outputText);
tester = new TestSignal();
tester.x = 10;
tester.y = 10;
addChild(tester);
tester.punched.add(testerPunch);
tester.punched.addOnce(firstPunch);
tester.punch();
tester.punch();
tester.punch();
tester.kicked.add(testerKick);
tester.kick();
tester.clicked.add(testerClick);
tester.timed.add(testerTimer);
}
private function testerPunch(action:String):void
{
outputText.htmlText += "<font color='#FF0000'>Punched: </font>" + action + "\n";
}
private function firstPunch(action:String):void
{
outputText.htmlText += "<font color='#009900'>Firts punch: </font>" + action + "\n";
}
private function testerKick(event:GenericEvent):void
{
outputText.htmlText += "<font color='#0000FF'>Kick: </font> target: " + event.target + " signal: " + event.signal + "\n";
}
private function testerClick(event:MouseEvent):void
{
outputText.htmlText += "<font color='#CC66CC'>Mouse click: </font>" + event.target + "\n";
}
private function testerTimer(event:TimerEvent):void
{
runTime++;
outputText.htmlText += "<font color='#CCCCCC'>Timer: </font>" + runTime + "\n";
if (runTime > 4) {
tester.timed.remove(testerTimer);
outputText.htmlText += "tester.timed.remove(testerTimer);\n";
}
}
}
}
import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
import org.osflash.signals.Signal;
import org.osflash.signals.DeluxeSignal;
import org.osflash.signals.events.GenericEvent;
import org.osflash.signals.natives.NativeSignal;
class TestSignal extends Sprite {
public var punched:Signal;
public var kicked:DeluxeSignal;
public var clicked:NativeSignal;
public var timed:NativeSignal;
private var timer:Timer;
public function TestSignal()
{
graphics.beginFill(0xff0000);
graphics.drawRect(0, 0, 100, 100);
graphics.endFill();
punched = new Signal(String);
kicked = new DeluxeSignal(this);
clicked = new NativeSignal(this, MouseEvent.CLICK, MouseEvent);
timer = new Timer(1000);
timed = new NativeSignal(timer, TimerEvent.TIMER , TimerEvent);
timer.start();
}
public function punch():void
{
punched.dispatch("Punch!");
}
public function kick():void
{
kicked.dispatch(new GenericEvent());
}
}