Auge
Die erste Version habe ich noch mit der IDE von Adobe gemacht, die ist ganz unten in der Flashseite das ding mit dem Schädel.
Als ich angefangen habe, mit haXe zu programmieren, war dieses Auge das erste, was ich ausprobiert habe. Allerdings hab ich die erste Version mit AS2 programmiert.
Diese Version hier ist mit ActionScript 3 gemacht, objektorientiert und die, die ich im Flash-Header benutzt habe.
/* -main Auge_as3 -swf auge_as3.swf -swf-version 9 -swf-header 400:400:15 */ import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; class Auge_as3 { static var mc : MovieClip; static var auge : Auge; public static function main() { mc = flash.Lib.current; mc.addEventListener(Event.ENTER_FRAME, einzelbild ); auge = new Auge( mc, 200, 200, 30, 300 ); } // main() static function einzelbild(e:Event) { auge.bewegen(mc.mouseX, mc.mouseY); // guckt zur Maus } // einzelbild() } // Auge_as3 class Auge { private var mc : MovieClip; // auf den das Auge gezeichnet wird private var auge : Sprite; private var pupille : Sprite; private var r:Int; // radius Augapfel private var h:Int; // hoehe, in der der Mauszeiger ueber der Hintergrundebene schwebt private var zentrumX : Int; // zentrum des Augapfels private var zentrumY : Int; public function new(mc:MovieClip, posX:Int, posY:Int, radius:Int, hoehe:Int){ this.mc = mc; this.r = radius; this.h = hoehe; this.zentrumX = posX; this.zentrumY = posY; this.auge = new Sprite(); auge.graphics.beginFill(0x234090,0.15); auge.graphics.drawCircle(0, 0, Math.sqrt((r*r)+((r/3)*(r/3)))); // Augapfel malen auge.graphics.endFill(); mc.addChild(auge); auge.x = zentrumX; auge.y = zentrumY; this.pupille = new Sprite(); pupille.graphics.beginFill(0x234090,0.5); pupille.graphics.drawCircle(0,0,r/3); // Iris malen pupille.graphics.beginFill(0x234090,0.75); pupille.graphics.drawCircle(0, 0, r/4.5); // Pupille malen pupille.graphics.endFill(); auge.addChild(pupille); } // augeMalen() public function bewegen(x:Float,y:Float) { var xm: Float = x-zentrumX; var ym: Float = y-zentrumY; var abstand : Float = Math.sqrt((xm*xm)+(ym*ym)); if (ym >= 0) { // Umrechnung von kartesischen Koordinaten in Polarkoordinaten auge.rotation = Math.acos(xm/abstand) *57.29578; // 180/PI } else { auge.rotation = -Math.acos(xm/abstand) *57.29578; } var phi:Float = Math.atan(h/abstand); // Winkel zwischen Blickrichtung und Hintergrund pupille.scaleX = Math.sin(phi); // wie stark die Pupille gestaucht wird pupille.x = Math.cos(phi) *r; // Auslenkung der Pupille von "geradeaus gucken" } // augeBewegen() } // class Auge