flash on 2011-2-27
...
@author naoto koshikawa
♥0 |
Line 63 |
Modified 2011-02-28 13:49:10 |
MIT License
archived:2017-03-30 03:07:28
ActionScript3 source code
/**
* Copyright tepe ( http://wonderfl.net/user/tepe )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/csVD
*/
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import net.user1.reactor.IClient;
import net.user1.reactor.Reactor;
import net.user1.reactor.ReactorEvent;
import net.user1.reactor.Room;
import net.user1.reactor.RoomEvent;
public class TryUnion1 extends Sprite
{
private var _reactor:Reactor;
private var _room:Room;
private var color:uint;
public function TryUnion1() {
color = Math.random()*0xffffff;
connect();
}
private function connect():void {
_reactor = new Reactor();//インスタンス作成
_reactor.addEventListener( ReactorEvent.READY, _reactor_readyHandler);//接続完了イベント
//_reactor.connect("localhost",9100);
_reactor.connect("tryunion.com", 9100);// Union Serverへ接続します。
}
//入室フェーズ
private function join():void {
_room = _reactor.getRoomManager().createRoom("test222");//ルーム作成
_room.addEventListener(RoomEvent.JOIN, _room_joinHandler);//ルーム入室イベント
_room.addMessageListener("shared", _room_sharedHandler);//"shared"メッセージ受信イベント
_room.join();
}
//入室後の設定
private function activate():void {
stage.addEventListener( MouseEvent.CLICK, stage_mouseClickHandler );
}
private function _reactor_readyHandler(event:ReactorEvent):void {
join();
}
//入室イベント
private function _room_joinHandler(event:RoomEvent):void {
activate();
}
//メッセージ受信
private function _room_sharedHandler(
fromClient:IClient, color:uint,
sharedX:Number, sharedY:Number):void
{
graphics.beginFill(color);
graphics.drawCircle(sharedX, sharedY, 10);//円描画
var textField:TextField = new TextField();
textField.autoSize = TextFieldAutoSize.LEFT;
textField.text = fromClient.getClientID();//クライアントID
textField.x = sharedX;
textField.y = sharedY;
textField.mouseEnabled = false;
addChild(textField);
}
//メッセージ送信
private function stage_mouseClickHandler(event:MouseEvent):void
{
// Roomに色とマウスのx座標、y座標を引数とした shared という名の
// メッセージを送信します
_room.sendMessage( "shared", true, null, //メッセージ,エコー,内容
color,//カラー
event.stageX, event.stageY//位置
);
}
}
}