| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589 |
- import flash.external.*;
- function f2c_LeaveRoom()
- {
- ExternalInterface.call("f2c_LeaveRoom");
- }
- ExternalInterface.addCallback("c2f_LeaveRoom", this, c2f_LeaveRoom);
- function c2f_LeaveRoom(resultCode:String):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
- }
- else
- {
- trace("c2f_LeaveRoom failure. Result= " + resultCode);
-
- /*
- REC_LEAVE_ROOM_UNKNOWN_ROOM_ID,
- REC_LEAVE_ROOM_CURRENTLY_IN_QUICK_JOIN,
- REC_LEAVE_ROOM_NOT_IN_ROOM,
- */
- }
-
- gotoAndStop("CreateRoom");
- }
- inviteFriendButton.addEventListener("click", this, "f2c_SendInvite");
- function f2c_SendInvite()
- {
- ExternalInterface.call("f2c_SendInvite", playerNameTextInput.text,false);
- }
- ExternalInterface.addCallback("c2f_SendInvite", this, c2f_SendInvite);
- function c2f_SendInvite(resultCode:String, inviteeName:String, inviteToSpectatorSlot:Boolean ):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
- }
- else
- {
- trace("c2f_SendInvite failure. Result= " + resultCode);
-
- /*
- REC_SEND_INVITE_UNKNOWN_ROOM_ID,
- REC_SEND_INVITE_INVITEE_ALREADY_INVITED,
- REC_SEND_INVITE_CANNOT_PERFORM_ON_SELF,
- REC_SEND_INVITE_INVITOR_ONLY_MODERATOR_CAN_INVITE, // INVITE_MODE_MODERATOR_ONLY
- REC_SEND_INVITE_INVITOR_LACK_INVITE_PERMISSIONS, // Any other INVITE_MODE
- REC_SEND_INVITE_INVITOR_NOT_IN_ROOM,
- REC_SEND_INVITE_NO_SLOTS,
- REC_SEND_INVITE_INVITEE_ALREADY_IN_THIS_ROOM,
- REC_SEND_INVITE_INVITEE_BANNED,
- REC_SEND_INVITE_RECIPIENT_NOT_ONLINE,
- REC_SEND_INVITE_ROOM_LOCKED,
- */
- }
- }
- startSpectatingButton.addEventListener("click", this, "f2c_StartSpectating");
- function f2c_StartSpectating()
- {
- ExternalInterface.call("f2c_StartSpectating");
- }
- ExternalInterface.addCallback("c2f_StartSpectating", this, c2f_StartSpectating);
- function c2f_StartSpectating(resultCode:String):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
- }
- else
- {
- trace("c2f_StartSpectating failure. Result= " + resultCode);
-
- /*
- REC_START_SPECTATING_UNKNOWN_ROOM_ID,
- REC_START_SPECTATING_ALREADY_SPECTATING,
- REC_START_SPECTATING_NO_SPECTATOR_SLOTS_AVAILABLE,
- REC_START_SPECTATING_NOT_IN_ROOM,
- REC_START_SPECTATING_REASSIGN_MODERATOR_BEFORE_SPECTATE,
- REC_START_SPECTATING_ROOM_LOCKED,
- */
- }
- }
- stopSpectatingButton.addEventListener("click", this, "f2c_StopSpectating");
- function f2c_StopSpectating()
- {
- ExternalInterface.call("f2c_StopSpectating");
- }
- ExternalInterface.addCallback("c2f_StopSpectating", this, c2f_StopSpectating);
- function c2f_StopSpectating(resultCode:String):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
- }
- else
- {
- trace("c2f_StopSpectating failure. Result= " + resultCode);
-
- /*
- REC_STOP_SPECTATING_UNKNOWN_ROOM_ID,
- REC_STOP_SPECTATING_NOT_IN_ROOM,
- REC_STOP_SPECTATING_NOT_CURRENTLY_SPECTATING,
- REC_STOP_SPECTATING_NO_SLOTS,
- REC_STOP_SPECTATING_ROOM_LOCKED,
- */
- }
- }
- makeModeratorButton.addEventListener("click", this, "f2c_GrantModerator");
- function f2c_GrantModerator()
- {
- ExternalInterface.call("f2c_GrantModerator", playerNameTextInput.text);
- }
- ExternalInterface.addCallback("c2f_GrantModerator", this, c2f_GrantModerator);
- function c2f_GrantModerator(resultCode:String, newModerator:String):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
- }
- else
- {
- trace("c2f_GrantModerator failure. Result= " + resultCode);
-
- /*
- REC_GRANT_MODERATOR_UNKNOWN_ROOM_ID,
- REC_GRANT_MODERATOR_NEW_MODERATOR_NOT_ONLINE,
- REC_GRANT_MODERATOR_NOT_IN_ROOM,
- REC_GRANT_MODERATOR_NEW_MODERATOR_NOT_IN_ROOM,
- REC_GRANT_MODERATOR_CANNOT_PERFORM_ON_SELF,
- REC_GRANT_MODERATOR_MUST_BE_MODERATOR_TO_GRANT_MODERATOR,
- REC_GRANT_MODERATOR_NEW_MODERATOR_NOT_IN_PLAYABLE_SLOT,
- */
- }
- }
- readyButton.addEventListener("click", this, "f2c_SetReadyStatus_true");
- unreadyButton.addEventListener("click", this, "f2c_SetReadyStatus_false");
- function f2c_SetReadyStatus_true()
- {
- ExternalInterface.call("f2c_SetReadyStatus", true);
- }
- function f2c_SetReadyStatus_false()
- {
- ExternalInterface.call("f2c_SetReadyStatus", false);
- }
- ExternalInterface.addCallback("c2f_SetReadyStatus", this, c2f_SetReadyStatus);
- function c2f_SetReadyStatus():Void
- {
- var resultCode:String = arguments[0];
-
- if (resultCode=="REC_SUCCESS")
- {
- var isReady:Boolean = arguments[1];
- var readyUsersListSize:Number = arguments[2];
- var argumentIndex=3;
- for (var i:Number = 0; i < roomMemberListSize; i++)
- {
- var userName:String = arguments[argumentIndex++];
- }
-
- var unreadyUsersListSize:Number = arguments[argumentIndex++];
- for (var i:Number = 0; i < roomMemberListSize; i++)
- {
- var userName:String = arguments[argumentIndex++];
- }
- }
- else
- {
- trace("c2f_SetReadyStatus failure. Result= " + resultCode);
-
- /*
- REC_SET_READY_STATUS_UNKNOWN_ROOM_ID,
- REC_SET_READY_STATUS_NOT_IN_ROOM,
- REC_SET_READY_STATUS_NOT_IN_PLAYABLE_SLOT,
- REC_SET_READY_STATUS_AUTO_LOCK_ALL_PLAYERS_READY,
- */
- }
- }
- function f2c_GetReadyStatus()
- {
- ExternalInterface.call("f2c_GetReadyStatus");
- }
- ExternalInterface.addCallback("c2f_GetReadyStatus", this, c2f_GetReadyStatus);
- function c2f_GetReadyStatus(resultCode:String):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
- var readyUsersListSize:Number = arguments[1];
- var argumentIndex=2;
- for (var i:Number = 0; i < roomMemberListSize; i++)
- {
- var userName:String = arguments[argumentIndex++];
- }
-
- var unreadyUsersListSize:Number = arguments[argumentIndex++];
- for (var i:Number = 0; i < roomMemberListSize; i++)
- {
- var userName:String = arguments[argumentIndex++];
- }
- }
- else
- {
- trace("c2f_GetReadyStatus failure. Result= " + resultCode);
-
- /*
- REC_GET_READY_STATUS_NOT_IN_ROOM,
- REC_GET_READY_STATUS_UNKNOWN_ROOM_ID,
- */
- }
- }
- lockRoomButton.addEventListener("click", this, "f2c_SetRoomLockState_Locked");
- unlockRoomButton.addEventListener("click", this, "f2c_SetRoomLockState_Unlocked");
- function f2c_SetRoomLockState_Locked()
- {
- // NOT_LOCKED
- // PLAYERS_LOCKED
- // ALL_LOCKED
- ExternalInterface.call("f2c_SetRoomLockState", "ALL_LOCKED");
- }
- function f2c_SetRoomLockState_Unlocked()
- {
- // NOT_LOCKED
- // PLAYERS_LOCKED
- // ALL_LOCKED
- ExternalInterface.call("f2c_SetRoomLockState", "NOT_LOCKED");
- }
- ExternalInterface.addCallback("c2f_SetRoomLockState", this, c2f_SetRoomLockState);
- function c2f_SetRoomLockState(resultCode:String, roomLockState:String):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
- if ( roomLockState=="NOT_LOCKED")
- {
- teamsAreLockedLabel.text="Not Locked";
- }
- else
- {
- teamsAreLockedLabel.text="Locked";
- }
- }
- else
- {
- trace("c2f_SetRoomLockState failure. Result= " + resultCode);
-
- /*
- REC_SET_ROOM_LOCK_STATE_UNKNOWN_ROOM_ID,
- REC_SET_ROOM_LOCK_STATE_NOT_IN_ROOM,
- REC_SET_ROOM_LOCK_STATE_MUST_BE_MODERATOR,
- REC_SET_ROOM_LOCK_STATE_BAD_ENUMERATION_VALUE,
- */
- }
- }
- function f2c_GetRoomLockState()
- {
- ExternalInterface.call("f2c_GetRoomLockState");
- }
- ExternalInterface.addCallback("c2f_GetRoomLockState", this, c2f_GetRoomLockState);
- function c2f_GetRoomLockState(resultCode:String, roomLockState:String):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
-
- // NOT_LOCKED
- // PLAYERS_LOCKED
- // ALL_LOCKED
-
- if ( roomLockState=="NOT_LOCKED")
- {
- teamsAreLockedLabel.text="Not Locked";
- }
- else
- {
- teamsAreLockedLabel.text="Locked";
- }
-
- }
- else
- {
- trace("c2f_GetRoomLockState failure. Result= " + resultCode);
-
- /*
- REC_GET_ROOM_LOCK_STATE_UNKNOWN_ROOM_ID,
- REC_GET_ROOM_LOCK_STATE_NOT_IN_ROOM,
- */
- }
- }
- function f2c_AreAllMembersReady()
- {
- ExternalInterface.call("f2c_AreAllMembersReady");
- }
- ExternalInterface.addCallback("c2f_AreAllMembersReady", this, c2f_AreAllMembersReady);
- function c2f_AreAllMembersReady(resultCode:String, allReady:Boolean):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
- }
- else
- {
- trace("c2f_AreAllMembersReady failure. Result= " + resultCode);
-
- /*
- REC_ARE_ALL_MEMBERS_READY_UNKNOWN_ROOM_ID,
- REC_ARE_ALL_MEMBERS_READY_NOT_IN_ROOM,
- */
- }
- }
- kickSelectedPlayerButton.addEventListener("click", this, "f2c_KickMember");
- function f2c_KickMember()
- {
- var memberName:String = roomMembersScrollingList.dataProvider[roomMembersScrollingList.selectedIndex];
- ExternalInterface.call("f2c_KickMember", memberName,"Reason goes here");
- }
- ExternalInterface.addCallback("c2f_KickMember", this, c2f_KickMember);
- function c2f_KickMember(resultCode:String, kickedMember:String, reason:String):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
- }
- else
- {
- trace("c2f_KickMember failure. Result= " + resultCode);
-
- /*
- REC_KICK_MEMBER_UNKNOWN_ROOM_ID,
- REC_KICK_MEMBER_NOT_IN_ROOM,
- REC_KICK_MEMBER_TARGET_NOT_ONLINE,
- REC_KICK_MEMBER_TARGET_NOT_IN_YOUR_ROOM,
- REC_KICK_MEMBER_MUST_BE_MODERATOR,
- REC_KICK_MEMBER_CANNOT_PERFORM_ON_SELF,
- */
- }
- }
- sendChatMessageButton.addEventListener("click", this, "f2c_Room_Chat_Func");
- function f2c_Room_Chat_Func()
- {
- ExternalInterface.call("f2c_Room_Chat_Func", chatTextInput.text);
- }
- ExternalInterface.addCallback("c2f_Chat_Callback", this, c2f_Chat_Callback);
- function c2f_Chat_Callback(resultCode:String, chatRecipient:String, chatTextInput:String):Void
- {
- if (resultCode=="REC_SUCCESS")
- {
- trace(chatRecipient + " >> " + chatTextInput + "\n");
- chatTextArea.text+=chatRecipient + " >> " + chatTextInput + "\n";
- }
- else
- {
- trace("c2f_Chat_Callback failure. Result= " + resultCode + " when sent to " + chatRecipient);
- /*
- REC_CHAT_USER_NOT_IN_ROOM,
- REC_CHAT_RECIPIENT_NOT_ONLINE,
- REC_CHAT_RECIPIENT_NOT_IN_ANY_ROOM,
- REC_CHAT_RECIPIENT_NOT_IN_YOUR_ROOM,
- */
- }
- }
- ExternalInterface.addCallback("c2f_Chat_Notification", this, c2f_Chat_Notification);
- function c2f_Chat_Notification(sender:String, chatRecipient:String, chatTextInput:String, profanityFilteredTextInput:String ):Void
- {
- chatTextArea.text+=sender + " << " + chatTextInput + "\n";
- }
- startGameButton.addEventListener("click", this, "f2c_StartGame");
- function f2c_StartGame()
- {
- ExternalInterface.call("f2c_StartGame");
- }
- ExternalInterface.addCallback("c2f_StartGame", this, c2f_StartGame);
- function c2f_StartGame( resultCode:String ):Void
- {
- // Result of asking C++ to start the game
-
- if (resultCode=="START_GAME_SUCCESS")
- {
- }
- else
- {
- trace("c2f_StartGame failure. Result= " + resultCode);
- /*
- User defined codes here
- */
- }
- }
- ExternalInterface.addCallback("c2f_StartGame_Notification", this, c2f_StartGame_Notification);
- function c2f_StartGame_Notification( ):Void
- {
- // Tell actionscript that C++ start the game
- }
- ExternalInterface.addCallback("c2f_RoomMemberStartedSpectating_Callback", this, c2f_RoomMemberStartedSpectating_Callback)
- function c2f_RoomMemberStartedSpectating_Callback( userName:String ):Void
- {
- }
- ExternalInterface.addCallback("c2f_RoomMemberStoppedSpectating_Callback", this, c2f_RoomMemberStoppedSpectating_Callback)
- function c2f_RoomMemberStoppedSpectating_Callback( userName:String ):Void
- {
- }
- ExternalInterface.addCallback("c2f_ModeratorChanged_Callback", this, c2f_ModeratorChanged_Callback)
- function c2f_ModeratorChanged_Callback( newModerator:String, oldModerator:String ):Void
- {
- }
- ExternalInterface.addCallback("c2f_RoomMemberReadyStatusSet_Callback", this, c2f_RoomMemberReadyStatusSet_Callback)
- function c2f_RoomMemberReadyStatusSet_Callback( ):Void
- {
- var isReady:Boolean = arguments[0];
- var roomMemberName:String = arguments[1];
- var num:Number = arguments[2];
- var argumentIndex=3;
-
- // users in the ready state
- for (var i:Number = 0; i < num; i++)
- {
- var roomMemberName = arguments[argumentIndex++];
- }
-
- num = arguments[argumentIndex++];
-
- // Users in the unready state
- for (var i:Number = 0; i < num; i++)
- {
- var roomMemberName = arguments[argumentIndex++];
- }
- }
- ExternalInterface.addCallback("c2f_RoomLockStateSet_Callback", this, c2f_RoomLockStateSet_Callback)
- function c2f_RoomLockStateSet_Callback( roomLockState:String ):Void
- {
- // NOT_LOCKED
- // PLAYERS_LOCKED
- // ALL_LOCKED
- if ( roomLockState=="NOT_LOCKED")
- {
- teamsAreLockedLabel.text="Not Locked";
- }
- else
- {
- teamsAreLockedLabel.text="Locked";
- }
- }
- function RemoveFromRoomMembersList(roomMember:String)
- {
- for (var i:Number = 0; i < roomMembersScrollingList.dataProvider.length; i++)
- {
- var memberName:String = roomMembersScrollingList.dataProvider[i];
- if (memberName==roomMember)
- {
- roomMembersScrollingList.splice(i,1);
- break;
- }
- }
- }
- function AddToRoomMembersList(roomMember:String)
- {
- for (var i:Number = 0; i < roomMembersScrollingList.dataProvider.length; i++)
- {
- var memberName:String = roomMembersScrollingList.dataProvider[i];
- if (memberName==roomMember)
- {
- return;
- }
- }
-
- roomMembersScrollingList.dataProvider.push(roomMember);
- roomMembersScrollingList.dataProvider.invalidate();
- }
- ExternalInterface.addCallback("c2f_RoomMemberKicked_Callback", this, c2f_RoomMemberKicked_Callback)
- function c2f_RoomMemberKicked_Callback( roomMember:String, moderator:String, reason:String ):Void
- {
- RemoveFromRoomMembersList(roomMember);
-
- }
- ExternalInterface.addCallback("c2f_RoomMemberLeftRoom_Callback", this, c2f_RoomMemberLeftRoom_Callback)
- function c2f_RoomMemberLeftRoom_Callback( roomMember:String ):Void
- {
- RemoveFromRoomMembersList(roomMember);
- }
- ExternalInterface.addCallback("c2f_RoomMemberJoinedRoom_Callback", this,c2f_RoomMemberJoinedRoom_Callback)
- function c2f_RoomMemberJoinedRoom_Callback( acceptedInvitorName:String, acceptedInvitorAddress:String, joiningMemberName:String, joiningMemberAddress:String ):Void
- {
- AddToRoomMembersList(joiningMemberName);
- }
- ExternalInterface.addCallback("c2f_RoomDestroyedOnModeratorLeft_Callback", this, c2f_RoomDestroyedOnModeratorLeft_Callback)
- function c2f_RoomDestroyedOnModeratorLeft_Callback( oldModerator:String ):Void
- {
- trace("The room was destroyed.");
- gotoAndStop("CreateRoom");
- }
- function f2c_GetRoomProperties()
- {
- ExternalInterface.call("f2c_GetRoomProperties");
- }
- ExternalInterface.addCallback("c2f_GetRoomProperties", this, c2f_GetRoomProperties)
- function c2f_GetRoomProperties( ):Void
- {
- var resultCode:String = arguments[0];
- if (resultCode=="REC_SUCCESS")
- {
- roomMembersScrollingList.dataProvider=[];
-
-
- var roomName:String = arguments[1];
- var roomMemberListSize:Number = arguments[2];
- var argumentIndex=3;
- for (var i:Number = 0; i < roomMemberListSize; i++)
- {
- var roomMemberName:String = arguments[argumentIndex++];
- // RMM_MODERATOR
- // RMM_PUBLIC
- // RMM_RESERVED
- // RMM_SPECTATOR_PUBLIC
- // RMM_SPECTATOR_RESERVED
- // RMM_ANY_PLAYABLE
- // RMM_ANY_SPECTATOR
- var roomMemberMode:String = arguments[argumentIndex++];
- var roomMemberIsReady:Boolean = arguments[argumentIndex++];
- var roomMemberAddress:String = arguments[argumentIndex++];
- var roomMemberGuid:String = arguments[argumentIndex++];
-
-
- roomMembersScrollingList.dataProvider.push(roomMemberName);
- }
- roomMembersScrollingList.dataProvider.invalidate();
-
- var banListSize:Number = arguments[argumentIndex++];
- for (var i:Number = 0; i < banListSize; i++)
- {
- var roomMemberName:String = arguments[argumentIndex++];
- var reason:String = arguments[argumentIndex++];
- }
-
- // NOT_LOCKED
- // PLAYERS_LOCKED
- // ALL_LOCKED
- var roomLockState:String = arguments[argumentIndex++];
- var roomId:Number = arguments[argumentIndex++];
- var automaticallyLockRoomWhenAllUsersAreReady:Boolean = arguments[argumentIndex++];
- var roomIsHiddenFromSearches:Boolean = arguments[argumentIndex++];
-
- // For both inviteToRoomPermission and inviteToSpectatorSlotPermission
- // INVITE_MODE_ANYONE_CAN_INVITE,
- // INVITE_MODE_MODERATOR_CAN_INVITE,
- // INVITE_MODE_PUBLIC_SLOTS_CAN_INVITE,
- // INVITE_MODE_RESERVED_SLOTS_CAN_INVITE,
- // INVITE_MODE_SPECTATOR_SLOTS_CAN_INVITE,
- // INVITE_MODE_MODERATOR_OR_PUBLIC_SLOTS_CAN_INVITE,
- // INVITE_MODE_MODERATOR_OR_PUBLIC_OR_RESERVED_SLOTS_CAN_INVITE,
- var inviteToRoomPermission:String = arguments[argumentIndex++];
- var inviteToSpectatorSlotPermission:String = arguments[argumentIndex++];
-
- roomNameLabel.text=roomName;
- if ( roomLockState=="NOT_LOCKED")
- {
- teamsAreLockedLabel.text="Not Locked";
- }
- else
- {
- teamsAreLockedLabel.text="Locked";
- }
- }
- else
- {
- trace("c2f_GetRoomProperties failure. Result= " + resultCode);
-
- /*
- REC_GET_ROOM_PROPERTIES_EMPTY_ROOM_NAME_AND_NOT_IN_A_ROOM,
- REC_GET_ROOM_PROPERTIES_UNKNOWN_ROOM_NAME,
- */
- }
- }
- f2c_GetRoomProperties();
|