rendered paste body/**
* (c) jph-dev.net 2007
*
* @author Jean-Pascal Hövel <contact@jph-dev.net>
*/
package engine
{
import flash.display.DisplayObject;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
import engine.Cam;
/**
* Cam Class
* Kamera Klasse der Engine. Ihr werden Objekte
* zur Darstellung übergeben.
*
*
* @author Jean-Pascal Hövel <contact@jph-dev.net>
*/
public class CamObject
{
/*******************************************************************************
PRIVATE-VARS
********************************************************************************/
/**
* Speichert die Objekt
* Koordinaten.
*
*/
private var point:Object = {x:0, y:0, z:0};
/**
* Das Objekt auf dem
* das Cam Objekt arbeitet.
*
*/
private var object:DisplayObject;
/*******************************************************************************
CONSTRUCTOR
********************************************************************************/
public function CamObject(target:DisplayObject)
{
// super
super();
// ziel speichern
object = target;
// listener anmelden
target.addEventListener(Event.ENTER_FRAME, update);
}
/*******************************************************************************
PUBLIC-GETTER
********************************************************************************/
public function get x():Number
{
return point.x;
}
public function get y():Number
{
return point.y;
}
public function get z():Number
{
return point.z;
}
public function get target():DisplayObject
{
return object;
}
/*******************************************************************************
PUBLIC-SETTER
********************************************************************************/
public function set x(x:Number):void
{
point.x = x;
}
public function set y(y:Number):void
{
point.y = y;
}
public function set z(z:Number):void
{
point.z = z;
}
/*******************************************************************************
EVENT-HANDLER
********************************************************************************/
private function update(event:Event):void
{
var dz:Number = (1000 + z) - Cam.z;
var scale:Number = 1000 / dz;
if(dz > 0)
{
object.scaleX = scale / 10;
object.scaleY = scale / 10;
object.x = (point.x - Cam.x) * (scale / 10);
object.y = (point.y - Cam.y) * (scale / 10);
object.alpha = 100 - 99 * (dz / 1000) *.5;
}
else point.z += 4000;
}
}
}