Added a method: getSize()
and a new event: SizeChangedEvent. So that games can query and listen for changes to the size of their display area. git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@470 c613c5cb-e716-0410-b11b-feb51c14d237
This commit is contained in:
@@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
package com.threerings.ezgame {
|
package com.threerings.ezgame {
|
||||||
|
|
||||||
|
import flash.display.DisplayObject;
|
||||||
|
|
||||||
import flash.errors.IllegalOperationError;
|
import flash.errors.IllegalOperationError;
|
||||||
|
|
||||||
import flash.events.Event;
|
import flash.events.Event;
|
||||||
@@ -28,7 +30,7 @@ import flash.events.EventDispatcher;
|
|||||||
import flash.events.KeyboardEvent;
|
import flash.events.KeyboardEvent;
|
||||||
import flash.events.MouseEvent;
|
import flash.events.MouseEvent;
|
||||||
|
|
||||||
import flash.display.DisplayObject;
|
import flash.geom.Point;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dispatched when a key is pressed when the game has focus.
|
* Dispatched when a key is pressed when the game has focus.
|
||||||
@@ -44,6 +46,13 @@ import flash.display.DisplayObject;
|
|||||||
*/
|
*/
|
||||||
[Event(name="keyUp", type="flash.events.KeyboardEvent")]
|
[Event(name="keyUp", type="flash.events.KeyboardEvent")]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispatched when the size of the game area changes.
|
||||||
|
*
|
||||||
|
* @eventType com.threerings.ezgame.SizeChangedEvent.TYPE
|
||||||
|
*/
|
||||||
|
[Event(name="SizeChanged", type="com.threerings.ezgame.SizeChangedEvent")]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dispatched when the controller changes for the game.
|
* Dispatched when the controller changes for the game.
|
||||||
*
|
*
|
||||||
@@ -189,6 +198,15 @@ public class EZGameControl extends BaseControl
|
|||||||
return _gameConfig;
|
return _gameConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the size of the game area, expressed as a Point
|
||||||
|
* (x = width, y = height).
|
||||||
|
*/
|
||||||
|
public function getSize () :Point
|
||||||
|
{
|
||||||
|
return callEZCode("getSize_v1") as Point;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the CollectionsControl, which contains methods for utilizing the server to dispatch
|
* Get the CollectionsControl, which contains methods for utilizing the server to dispatch
|
||||||
* private information.
|
* private information.
|
||||||
@@ -623,6 +641,7 @@ public class EZGameControl extends BaseControl
|
|||||||
o["dispatchEvent_v1"] = dispatch;
|
o["dispatchEvent_v1"] = dispatch;
|
||||||
o["occupantChanged_v1"] = occupantChanged_v1;
|
o["occupantChanged_v1"] = occupantChanged_v1;
|
||||||
o["userChat_v1"] = userChat_v1;
|
o["userChat_v1"] = userChat_v1;
|
||||||
|
o["sizeChanged_v1"] = sizeChanged_v1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -702,6 +721,14 @@ public class EZGameControl extends BaseControl
|
|||||||
dispatch(new UserChatEvent(this, speaker, message));
|
dispatch(new UserChatEvent(this, speaker, message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Private method to generate a SizeChangedEvent.
|
||||||
|
*/
|
||||||
|
private function sizeChanged_v1 (size :Point) :void
|
||||||
|
{
|
||||||
|
dispatch(new SizeChangedEvent(this, size));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the properties we received from the EZ game framework on the other side of the security
|
* Sets the properties we received from the EZ game framework on the other side of the security
|
||||||
* boundary.
|
* boundary.
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
//
|
||||||
|
// Vilya library - tools for developing networked games
|
||||||
|
// Copyright (C) 2002-2007 Three Rings Design, Inc., All Rights Reserved
|
||||||
|
// http://www.threerings.net/code/vilya/
|
||||||
|
//
|
||||||
|
// This library is free software; you can redistribute it and/or modify it
|
||||||
|
// under the terms of the GNU Lesser General Public License as published
|
||||||
|
// by the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this library; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
package com.threerings.ezgame {
|
||||||
|
|
||||||
|
import flash.events.Event;
|
||||||
|
|
||||||
|
import flash.geom.Point;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispatched when the size of the game area changes, for example as a result of the user
|
||||||
|
* resizing their browser window.
|
||||||
|
*/
|
||||||
|
public class SizeChangedEvent extends EZEvent
|
||||||
|
{
|
||||||
|
/** The type of this event. */
|
||||||
|
public static const TYPE :String = "SizeChanged";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the size of the game area, expressed as a Point
|
||||||
|
* (The width is the x value, the height is the y value).
|
||||||
|
*/
|
||||||
|
public function get size () :Point
|
||||||
|
{
|
||||||
|
return _size;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*/
|
||||||
|
public function SizeChangedEvent (ezgame :EZGameControl, size :Point)
|
||||||
|
{
|
||||||
|
super(TYPE, ezgame);
|
||||||
|
_size = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
override public function toString () :String
|
||||||
|
{
|
||||||
|
return "[SizeChangedEvent size=" + _size + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
override public function clone () :Event
|
||||||
|
{
|
||||||
|
return new SizeChangedEvent(_ezgame, _size.clone());
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Our implementation details. */
|
||||||
|
protected var _size: Point;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -80,6 +80,16 @@ public class EZGamePanel extends Canvas
|
|||||||
backend.shutdown();
|
backend.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override protected function updateDisplayList (uw :Number, uh :Number) :void
|
||||||
|
{
|
||||||
|
super.updateDisplayList(uw, uh);
|
||||||
|
|
||||||
|
// TODO: debugging. Remove.
|
||||||
|
trace("UpdateDisplayList: " + uw + ":" + _gameView.width + ", " +
|
||||||
|
uh + ":" + _gameView.height);
|
||||||
|
backend.sizeChanged();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the backend object that will handle requests from user code.
|
* Creates the backend object that will handle requests from user code.
|
||||||
*/
|
*/
|
||||||
@@ -93,7 +103,7 @@ public class EZGamePanel extends Canvas
|
|||||||
view.percentWidth = 100;
|
view.percentWidth = 100;
|
||||||
view.percentHeight = 100;
|
view.percentHeight = 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected var _ctx :CrowdContext;
|
protected var _ctx :CrowdContext;
|
||||||
protected var _ctrl :EZGameController;
|
protected var _ctrl :EZGameController;
|
||||||
protected var _gameView :GameContainer;
|
protected var _gameView :GameContainer;
|
||||||
|
|||||||
@@ -21,17 +21,18 @@
|
|||||||
|
|
||||||
package com.threerings.ezgame.client {
|
package com.threerings.ezgame.client {
|
||||||
|
|
||||||
|
import flash.display.DisplayObject;
|
||||||
|
import flash.display.InteractiveObject;
|
||||||
|
|
||||||
import flash.errors.IllegalOperationError;
|
import flash.errors.IllegalOperationError;
|
||||||
|
|
||||||
import flash.events.Event;
|
import flash.events.Event;
|
||||||
import flash.events.EventDispatcher;
|
import flash.events.EventDispatcher;
|
||||||
import flash.events.IEventDispatcher;
|
import flash.events.IEventDispatcher;
|
||||||
import flash.events.KeyboardEvent;
|
import flash.events.KeyboardEvent;
|
||||||
|
|
||||||
import flash.events.MouseEvent;
|
import flash.events.MouseEvent;
|
||||||
|
|
||||||
import flash.display.DisplayObject;
|
import flash.geom.Point;
|
||||||
import flash.display.InteractiveObject;
|
|
||||||
|
|
||||||
import flash.utils.ByteArray;
|
import flash.utils.ByteArray;
|
||||||
import flash.utils.Dictionary;
|
import flash.utils.Dictionary;
|
||||||
@@ -189,6 +190,14 @@ public class GameControlBackend
|
|||||||
callUserCode("roundStateChanged_v1", started);
|
callUserCode("roundStateChanged_v1", started);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called by the EZGamePanel when the size of the game area has changed.
|
||||||
|
*/
|
||||||
|
public function sizeChanged () :void
|
||||||
|
{
|
||||||
|
callUserCode("sizeChanged_v1", getSize_v1());
|
||||||
|
}
|
||||||
|
|
||||||
// from SetListener
|
// from SetListener
|
||||||
public function entryAdded (event :EntryAddedEvent) :void
|
public function entryAdded (event :EntryAddedEvent) :void
|
||||||
{
|
{
|
||||||
@@ -286,6 +295,7 @@ public class GameControlBackend
|
|||||||
// from ChatDisplay
|
// from ChatDisplay
|
||||||
public function clear () :void
|
public function clear () :void
|
||||||
{
|
{
|
||||||
|
// we do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
// from ChatDisplay
|
// from ChatDisplay
|
||||||
@@ -517,6 +527,8 @@ public class GameControlBackend
|
|||||||
o["startTransaction"] = startTransaction_v1;
|
o["startTransaction"] = startTransaction_v1;
|
||||||
o["commitTransaction"] = commitTransaction_v1;
|
o["commitTransaction"] = commitTransaction_v1;
|
||||||
|
|
||||||
|
o["getSize_v1"] = getSize_v1;
|
||||||
|
|
||||||
// compatability
|
// compatability
|
||||||
o["endTurn_v2"] = startNextTurn_v1; // it's the same!
|
o["endTurn_v2"] = startNextTurn_v1; // it's the same!
|
||||||
}
|
}
|
||||||
@@ -909,6 +921,14 @@ public class GameControlBackend
|
|||||||
_ctx.getClient().getInvocationDirector().commitTransaction();
|
_ctx.getClient().getInvocationDirector().commitTransaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the size of the game area.
|
||||||
|
*/
|
||||||
|
protected function getSize_v1 () :Point
|
||||||
|
{
|
||||||
|
return new Point(_container.width, _container.height);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts a Flash array of ints to a TypedArray for delivery over the wire to the server.
|
* Converts a Flash array of ints to a TypedArray for delivery over the wire to the server.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user