first commit
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 120 B |
Binary file not shown.
|
After Width: | Height: | Size: 120 B |
+2
@@ -0,0 +1,2 @@
|
||||
gotoAndStop("_on");
|
||||
play();
|
||||
+1
@@ -0,0 +1 @@
|
||||
stop();
|
||||
+1
@@ -0,0 +1 @@
|
||||
stop();
|
||||
+248
@@ -0,0 +1,248 @@
|
||||
class feg_m_contextMenu
|
||||
{
|
||||
var m_callback = null;
|
||||
var m_defaultHelpersCallback = null;
|
||||
var m_defaultHelpersPlayerId = "0";
|
||||
static var ATTACHMOVIE_BASE_LEVEL = 500;
|
||||
static var MAXIMUM_ENTRY_COUNT = 16;
|
||||
static var ENTRY_HEIGHT = 20;
|
||||
static var ENTRY_MARGIN_HORIZ = 4;
|
||||
static var ENTRY_MARGIN_TOP = 4;
|
||||
static var ENTRY_MARGIN_BOTTOM = 3;
|
||||
function feg_m_contextMenu(screen)
|
||||
{
|
||||
feg_m_contextMenu.m_screen = screen;
|
||||
this.hideMenu();
|
||||
feg_m_contextMenu.m_screen.onEnterFrame = _global.bind0(this,this.frameDelayedInit);
|
||||
}
|
||||
function shutdown()
|
||||
{
|
||||
var _loc3_ = 0;
|
||||
while(_loc3_ < entryCount)
|
||||
{
|
||||
this.m_entryClips[_loc3_].setSelectCallback(null);
|
||||
this.m_entryClips[_loc3_].removeMovieClip();
|
||||
_loc3_ = _loc3_ + 1;
|
||||
}
|
||||
feg_m_contextMenu.m_screen = null;
|
||||
delete _global.feg_m_contextMenu;
|
||||
}
|
||||
function setNotificationCallback(fn)
|
||||
{
|
||||
if(this.m_callback != null && fn != null)
|
||||
{
|
||||
trace("ERROR in feg_m_contextMenu::setNotificationCallback(), previous callback exists!");
|
||||
}
|
||||
this.m_callback = fn;
|
||||
}
|
||||
function show(items, ids, states)
|
||||
{
|
||||
this.populateMenu(items,ids,states);
|
||||
this.positionMenuAtCurrentMouseLocation();
|
||||
this.showMenu();
|
||||
}
|
||||
function hide()
|
||||
{
|
||||
this.hideMenu();
|
||||
}
|
||||
function isShowing()
|
||||
{
|
||||
return feg_m_contextMenu.m_screen.contextMenu._visible;
|
||||
}
|
||||
function doDefaultFriendContextMenu(playerId, callback)
|
||||
{
|
||||
this.m_defaultHelpersPlayerId = playerId;
|
||||
var ret = new Object();
|
||||
// Checked
|
||||
loadVariables("QueryGameEngine?IsPcGameHost&IS_PLAYER_IGNORED?Player=" + playerId + "&IS_PLAYER_BUDDY?Player=" + playerId + "&MP_BUDDYSTATUS?Player=" + playerId + "&GAME_HAS_OPEN_SLOTS",ret);
|
||||
var isPCGameHost = Number(ret.IsPcGameHost) != 0;
|
||||
var isBuddy = Number(ret.IS_PLAYER_BUDDY) != 0;
|
||||
var isIgnored = Number(ret.IS_PLAYER_IGNORED) != 0;
|
||||
var isBuddyOnline = Number(ret.MP_BUDDYSTATUS_IS_ONLINE) != 0;
|
||||
var hasOpenGameSlots = Number(ret.GAME_HAS_OPEN_SLOTS) != 0;
|
||||
var items = new Array("$ContextInviteToGame","$ContextWhisper",!isIgnored ? "$ContextIgnore" : "$ContextRemoveFromIgnore",!isBuddy ? "$ContextAddAsFriend" : "$ContextRemoveFromFriends");
|
||||
var ids = new Array(_global.ENUM.CONTEXTMENU_INVITE_TO_GAME,_global.ENUM.CONTEXTMENU_WHISPER,!isIgnored ? _global.ENUM.CONTEXTMENU_IGNORE : _global.ENUM.CONTEXTMENU_REMOVE_FROM_IGNORE,!isBuddy ? _global.ENUM.CONTEXTMENU_ADD_AS_FRIEND : _global.ENUM.CONTEXTMENU_REMOVE_FROM_FRIENDS);
|
||||
var states = new Array(!(isPCGameHost && isBuddyOnline && hasOpenGameSlots) ? 0 : 1,!isBuddyOnline ? 0 : 1,1,1);
|
||||
this.m_defaultHelpersCallback = callback;
|
||||
this.setNotificationCallback(_global.bind1DynamicParams(this,this.onDefaultFriendContextMenuEntrySelected));
|
||||
this.show(items,ids,states);
|
||||
}
|
||||
function onDefaultFriendContextMenuEntrySelected(id)
|
||||
{
|
||||
if(id != _global.ENUM.CONTEXTMENU_INVALID_SELECTION)
|
||||
{
|
||||
switch(id)
|
||||
{
|
||||
case _global.ENUM.CONTEXTMENU_ADD_AS_FRIEND:
|
||||
// Checked
|
||||
getURL("FSCommand:CallGameFunction","%OnlineAddFriend?Player=" + this.m_defaultHelpersPlayerId);
|
||||
break;
|
||||
case _global.ENUM.CONTEXTMENU_INVITE_TO_GAME:
|
||||
// Checked
|
||||
getURL("FSCommand:CallGameFunction","%OnlineInvitePlayer?Player=" + this.m_defaultHelpersPlayerId);
|
||||
break;
|
||||
case _global.ENUM.CONTEXTMENU_WHISPER:
|
||||
break;
|
||||
case _global.ENUM.CONTEXTMENU_IGNORE:
|
||||
// Checked
|
||||
getURL("FSCommand:CallGameFunction","%OnlineIgnorePlayer?Ignore=1|Player=" + this.m_defaultHelpersPlayerId);
|
||||
break;
|
||||
case _global.ENUM.CONTEXTMENU_REMOVE_FROM_FRIENDS:
|
||||
// Checked
|
||||
getURL("FSCommand:CallGameFunction","%OnlineRemoveFriend?Player=" + this.m_defaultHelpersPlayerId);
|
||||
break;
|
||||
case _global.ENUM.CONTEXTMENU_REMOVE_FROM_IGNORE:
|
||||
// Checked
|
||||
getURL("FSCommand:CallGameFunction","%OnlineIgnorePlayer?Ignore=0|Player=" + this.m_defaultHelpersPlayerId);
|
||||
break;
|
||||
default:
|
||||
trace("*** ERROR: unknown context menu selection, id is " + id);
|
||||
}
|
||||
}
|
||||
this.m_defaultHelpersCallback(id,this.m_defaultHelpersPlayerId);
|
||||
this.m_defaultHelpersCallback = null;
|
||||
this.setNotificationCallback(null);
|
||||
this.hide();
|
||||
}
|
||||
function doDefaultPlayerContextMenu(playerId, callback)
|
||||
{
|
||||
this.m_defaultHelpersPlayerId = playerId;
|
||||
var ret = new Object();
|
||||
// Checked
|
||||
loadVariables("QueryGameEngine?IsPcGameHost&IS_PLAYER_IGNORED?Player=" + playerId + "&IS_PLAYER_BUDDY?Player=" + playerId + "&GAME_HAS_OPEN_SLOTS",ret);
|
||||
var isPCGameHost = Number(ret.IsPcGameHost) != 0;
|
||||
var isBuddy = Number(ret.IS_PLAYER_BUDDY) != 0;
|
||||
var isIgnored = Number(ret.IS_PLAYER_IGNORED) != 0;
|
||||
var hasOpenSlots = Number(ret.GAME_HAS_OPEN_SLOTS) != 0;
|
||||
var items = new Array("$ContextInviteToGame","$ContextWhisper",!isIgnored ? "$ContextIgnore" : "$ContextRemoveFromIgnore",!isBuddy ? "$ContextAddAsFriend" : "$ContextRemoveFromFriends");
|
||||
var ids = new Array(_global.ENUM.CONTEXTMENU_INVITE_TO_GAME,_global.ENUM.CONTEXTMENU_WHISPER,!isIgnored ? _global.ENUM.CONTEXTMENU_IGNORE : _global.ENUM.CONTEXTMENU_REMOVE_FROM_IGNORE,!isBuddy ? _global.ENUM.CONTEXTMENU_ADD_AS_FRIEND : _global.ENUM.CONTEXTMENU_REMOVE_FROM_FRIENDS);
|
||||
var states = new Array(!(isPCGameHost && hasOpenSlots) ? 0 : 1,1,1,1);
|
||||
this.m_defaultHelpersCallback = callback;
|
||||
_global.contextMenu.screen.setNotificationCallback(_global.bind1DynamicParams(this,this.onDefaultPlayerContextMenuEntrySelected));
|
||||
_global.contextMenu.screen.show(items,ids,states);
|
||||
}
|
||||
function onDefaultPlayerContextMenuEntrySelected(id)
|
||||
{
|
||||
if(id != _global.ENUM.CONTEXTMENU_INVALID_SELECTION)
|
||||
{
|
||||
switch(id)
|
||||
{
|
||||
case _global.ENUM.CONTEXTMENU_ADD_AS_FRIEND:
|
||||
// Checked
|
||||
getURL("FSCommand:CallGameFunction","%OnlineAddFriend?Player=" + this.m_defaultHelpersPlayerId);
|
||||
break;
|
||||
case _global.ENUM.CONTEXTMENU_INVITE_TO_GAME:
|
||||
// Checked
|
||||
getURL("FSCommand:CallGameFunction","%OnlineInvitePlayer?Player=" + this.m_defaultHelpersPlayerId);
|
||||
break;
|
||||
case _global.ENUM.CONTEXTMENU_WHISPER:
|
||||
break;
|
||||
case _global.ENUM.CONTEXTMENU_IGNORE:
|
||||
// Checked
|
||||
getURL("FSCommand:CallGameFunction","%OnlineIgnorePlayer?Ignore=1|Player=" + this.m_defaultHelpersPlayerId);
|
||||
break;
|
||||
case _global.ENUM.CONTEXTMENU_REMOVE_FROM_FRIENDS:
|
||||
// Checked
|
||||
getURL("FSCommand:CallGameFunction","%OnlineRemoveFriend?Player=" + this.m_defaultHelpersPlayerId);
|
||||
break;
|
||||
case _global.ENUM.CONTEXTMENU_REMOVE_FROM_IGNORE:
|
||||
// Checked
|
||||
getURL("FSCommand:CallGameFunction","%OnlineIgnorePlayer?Ignore=0|Player=" + this.m_defaultHelpersPlayerId);
|
||||
break;
|
||||
default:
|
||||
trace("*** ERROR: unknown context menu selection, id is " + id);
|
||||
}
|
||||
}
|
||||
this.m_defaultHelpersCallback(id,this.m_defaultHelpersPlayerId);
|
||||
this.m_defaultHelpersCallback = null;
|
||||
this.setNotificationCallback(null);
|
||||
this.hide();
|
||||
}
|
||||
function frameDelayedInit()
|
||||
{
|
||||
feg_m_contextMenu.m_screen.onEnterFrame = null;
|
||||
feg_m_contextMenu.m_screen.buttonGuard.onPress = _global.bind0(this,this.onButtonGuardClicked);
|
||||
feg_m_contextMenu.m_screen.contextMenu.onPress = _global.bind0(this,this.onContextMenuClicked);
|
||||
this.initEntryClips(feg_m_contextMenu.MAXIMUM_ENTRY_COUNT,feg_m_contextMenu.ENTRY_HEIGHT);
|
||||
this.populateMenu([""],[0],[1]);
|
||||
}
|
||||
function showMenu()
|
||||
{
|
||||
feg_m_contextMenu.m_screen.buttonGuard._visible = feg_m_contextMenu.m_screen.contextMenu._visible = true;
|
||||
}
|
||||
function hideMenu()
|
||||
{
|
||||
feg_m_contextMenu.m_screen.buttonGuard._visible = feg_m_contextMenu.m_screen.contextMenu._visible = false;
|
||||
}
|
||||
function initEntryClips(entryCount, entryHeight)
|
||||
{
|
||||
this.m_entryClips = new Array(entryCount);
|
||||
var _loc5_ = feg_m_contextMenu.ENTRY_MARGIN_TOP;
|
||||
var _loc4_ = 0;
|
||||
while(_loc4_ < entryCount)
|
||||
{
|
||||
var _loc3_ = feg_m_contextMenu.m_screen.contextMenu.attachMovie("contextMenuEntrySymbol","entryClip" + String(_loc4_),feg_m_contextMenu.ATTACHMOVIE_BASE_LEVEL + _loc4_);
|
||||
_loc3_._x = feg_m_contextMenu.ENTRY_MARGIN_HORIZ;
|
||||
_loc3_._y = _loc5_;
|
||||
_loc3_.init();
|
||||
_loc3_.setSelectCallback(_global.bind1DynamicParams(this,this.onEntrySelected));
|
||||
this.m_entryClips[_loc4_] = _loc3_;
|
||||
_loc5_ += entryHeight;
|
||||
_loc4_ = _loc4_ + 1;
|
||||
}
|
||||
}
|
||||
function onButtonGuardClicked()
|
||||
{
|
||||
this.m_callback(_global.ENUM.CONTEXTMENU_INVALID_SELECTION);
|
||||
this.setNotificationCallback(null);
|
||||
this.hide();
|
||||
}
|
||||
function onContextMenuClicked()
|
||||
{
|
||||
}
|
||||
function onEntrySelected(entry)
|
||||
{
|
||||
this.m_callback(entry.getId());
|
||||
this.setNotificationCallback(null);
|
||||
this.hide();
|
||||
}
|
||||
function positionMenuAtCurrentMouseLocation()
|
||||
{
|
||||
var _loc2_ = _global.getAbsoluteMouseLocation();
|
||||
feg_m_contextMenu.m_screen.contextMenu._x = _loc2_[0];
|
||||
feg_m_contextMenu.m_screen.contextMenu._y = _loc2_[1];
|
||||
}
|
||||
function populateMenu(items, ids, states)
|
||||
{
|
||||
var _loc5_ = 150;
|
||||
var _loc4_ = items.length > feg_m_contextMenu.MAXIMUM_ENTRY_COUNT ? feg_m_contextMenu.MAXIMUM_ENTRY_COUNT : items.length;
|
||||
var _loc2_ = 0;
|
||||
while(_loc2_ < _loc4_)
|
||||
{
|
||||
this.m_entryClips[_loc2_].setText(items[_loc2_]);
|
||||
this.m_entryClips[_loc2_].setId(ids[_loc2_]);
|
||||
this.m_entryClips[_loc2_].setEnabled(Number(states[_loc2_]) != 0);
|
||||
this.m_entryClips[_loc2_].adjustWidth(_loc5_);
|
||||
this.m_entryClips[_loc2_]._visible = true;
|
||||
_loc2_ = _loc2_ + 1;
|
||||
}
|
||||
var _loc3_ = _loc4_;
|
||||
while(_loc3_ < feg_m_contextMenu.MAXIMUM_ENTRY_COUNT)
|
||||
{
|
||||
this.m_entryClips[_loc3_].setText("");
|
||||
this.m_entryClips[_loc3_]._visible = false;
|
||||
_loc3_ = _loc3_ + 1;
|
||||
}
|
||||
this.setFrameSize(_loc5_ + feg_m_contextMenu.ENTRY_MARGIN_HORIZ * 2,_loc4_ * feg_m_contextMenu.ENTRY_HEIGHT + feg_m_contextMenu.ENTRY_MARGIN_TOP + feg_m_contextMenu.ENTRY_MARGIN_BOTTOM);
|
||||
}
|
||||
function setFrameSize(x, y)
|
||||
{
|
||||
var _loc1_ = feg_m_contextMenu.m_screen.contextMenu;
|
||||
_loc1_.fill._width = x;
|
||||
_loc1_.fill._height = y;
|
||||
_loc1_.edge_t._width = _loc1_.edge_b._width = x;
|
||||
_loc1_.edge_b._y = y - _loc1_.edge_b._height;
|
||||
_loc1_.edge_l._height = _loc1_.edge_r._height = y;
|
||||
_loc1_.edge_r._x = x - _loc1_.edge_r._width;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
stop();
|
||||
var screen = new feg_m_contextMenu(this);
|
||||
@@ -0,0 +1,2 @@
|
||||
7;contextMenuEntrySymbol
|
||||
18;__Packages.feg_m_contextMenu
|
||||
|
Reference in New Issue
Block a user