ALso ich arbeite grad an einer lib mit vielen klassen und funktionen
bis her siehts so aus:
HTML-Code:
<std>
|
|-- <data>
| |-- Element
| |-- Iterator
| |-- Stack
|
|-- <events>
| |-- EventHandler
|
|-- <geom>
| |-- Graph
|
|-- <math>
| |-- math
| |-- Matrix
| |-- Vector
|
|-- <utils>
|-- Time std.data.Element: ActionScript:
import std.data.Element;
var e : Element = new Element( "hallo");
trace( e.value ); // hallo
e.value = 0;
trace( e.value ); // 0
std.data.Iterator: ActionScript:
package std.data
{
public interface Iterator
{
public function get data() : *;
public function set data( value : * ) : void
public function start() : void;
public function hasNext() : Boolean;
public function next() : *
}
}
std.data.Stack: ActionScript:
import std.data.Stack;
var s : Stack = new Stack( 0, 1, 2, 3, 4 );
trace( s.pop() ); // 4
s.push( "blaaaa" );
trace( s.pop() ); // blaaaa
std.events.EventHandler: ActionScript:
import std.events.EventHandler;
var s : Sprite = new Sprite;
function enterFrame( event : Event ) : void {};
function addedToStage( event : Event ) : void {};
EventHandler.addEventListenerTo( s, Event.ENTER_FRAME, enterFrame );
EventHandler.addEventListenerTo( s, Event.ADDED_TO_STAGE, addedToStage );
this.addChild( s );
trace( s.hasEventListener( Event.ENTER_FRAME ) ); // true
EventHandler.removeEventListenerFrom( s );
// removes all
EventHandler.removeEventListenerFrom( s, Event.ENTER_FRAME );
// removes all Event.ENTER_FRAME listerners
EventHandler.removeEventListenerFrom( s, Event.ENTER_FRAME, enterFrame );
// removes the specific listener
std.geom.Graph: ActionScript:
import std.geom.Graph:
function f( x : Number ) : Number
{
// y = mx + n
return 2/5 * x + 50;
}
Graph.setProperties( 1, 0xFF0000, 0.5 );
Graph.drawFunction( f, [ -10, 10 ], this.graphics );
std.math.math:
Erweiterung der Math-Klasse um komplexe funktionen
( Hyperbolicus udn Areafunktionen ) + Hilfsfunktionen
std.math.Matrix: ActionScript:
import std.math.Matrix;
var m : Matrix = new Matrix( 2, 3 );
m.setElementAt( 1, 1, 1 );
m.setElementAt( 1, 2, 2 );
m.setElementAt( 1, 3, 3 );
m.setElementAt( 2, 1, 4 );
m.setElementAt( 2, 2, 5 );
m.setElementAt( 2, 3, 6 );
/*
* 1 2 3
* 4 5 6
*/
var m2 : Matrix = new Matrix( 3, 2 );
m2.setElementAt( 1, 1, 6 );
m2.setElementAt( 1, 2, -1 );
m2.setElementAt( 2, 1, 3 );
m2.setElementAt( 2, 2, 2 );
m2.setElementAt( 3, 1, 0 );
m2.setElementAt( 3, 2, -3 );
/*
* 6 -1
* 3 2
* 0 -3
*/
m.add( m2 );
trace( m.toString() );
/*
* 7 1 3
* 7 7 6
*/
Ist aber noch nicht komplett implementiert. fehlen noch einige funktionen.
std.math.Vector: ActionScript:
import std.math.Vector;
var v : Vector = new Vector;
v = Vector.add( v, new Vector( 2, 3 ) );
v.normalize();
v = v.getOrthogonal();
v = Vector.project( v, new Vector( 1, 1 ) );
trace( v.toString() );
std.utils.Time:
Verhindert, dass durch herrabsetzen der FrameRate die bewegung
verlangsamt wird. Besonders für Spiele geeignet um nicht cheaten zu können
ActionScript:
import std.utils.Time;
var s : Sprite = new Sprite;
s.x = 100;
s.y = 200;
s.graphics.lineStyle( 0, 0x000000, 1 );
s.graphics.drawCircle( 0, 0, 15 );
this.addChild( s );
var b : Sprite = new Sprite;
b.x = 100;
b.y = 100;
b.graphics.lineStyle( 0, 0x000000, 1 );
b.graphics.drawCircle( 0, 0, 15 );
this.addChild( b );
addEventListener( Event.ENTER_FRAME, enterFrame );
function enterFrame( event : Event ) : void
{
var delay : Number = Time.getDelay();
s.x += 5 * delay;
b.x += 5;
Time.update();
}
Für weitere Klassen oder ähnliches was man brauchen könnte würd ich mich über eure Vorschläge freuen.