crusy.net

  • home.
  • photos.
  • about.

 

07
Jan

EaselJS: Lift-off und OOP [UPDATE]

By crusy|Coding, Javascript|Be the first to comment!

Also zuerst mal sollte diese EaselJS-Geschichte nun nicht mehr nur auf der Startseite funktionieren – mea culpa!

Was EaselJS für mich so richtig interessant macht, ist die Tatsache, dass jedes Objekt auf dem Canvas eigenständig bleibt – so wie ich das Canvas-Element verstehe (als eine Art Bitmap/BitmapData), ist das nicht immer so? Dadurch kann man diesem kleinen Ball aus meiner Demo zum Beispiel einen Click-Handler geben, wie soeben geschehen.

Dabei ist mir Folgendes aufgefallen: Wenn ich tatsächlich nach und nach mehrere (ausgefeiltere) Demos bauen will, dann würde es der Übersichtlichkeit dienen, wenn ich diese voneinander separieren könnte. Am Liebsten in ihrem jeweils eigenen Objekt, von denen ich dann jeweils eines instanziiere. Nur: Wie funktioniert objektorientiertes Programmieren in JS? Meine JS-Kenntnisse sind etwas eingerostet, aber hier gibt es eine nette Basic- (!) Einführung.

Das Ergebnis kann man sich im Quellcode ansehen: Alle Variablen, die nur zur (bisher einzigen) Demo gehören, sind in “Klasse” “A” ausgelagert… I like! Nun könnte es eigentlich/vielleicht losgehen.

UPDATE:

Hm, andererseits wäre es auch interessant, “richtiges” OOP zu sehen, z.B. das Beerben von EaselJS’ Klassen. Angenommen, ich möchte ein TicTacToe-Spiel bauen, dann hätte ich Kreuze und Kreise, die beide (mir fällt grad kein besserer Begriff ein) Spielsteine (engl. “Tile”)sind, der wieder meinetwegen ein Shape ist. Wenn ich diese etwas ausgefeiltere Einführung als Ausgangspunkt nehme, sieht das so aus:

Tile.prototype = new Shape();
Tile.prototype.constructor = Tile;
Tile.prototype.g;
function Tile()
{
	this.g = new Graphics();
	Shape.prototype.initialize.call( this, this.g );
}

Circle.prototype = new Tile();
Circle.prototype.constructor = Circle;
function Circle()
{
	this.g.setStrokeStyle( 1 );
	this.g.beginStroke( Graphics.getRGB( 0, 0, 0 ) );
	this.g.drawCircle( 0, 0, 10 );
}

Cross.prototype = new Tile();
Cross.prototype.constructor = Cross;
function Cross()
{
	this.g.setStrokeStyle( 1 );
	this.g.beginStroke( Graphics.getRGB( 0, 0, 0 ) );
	this.g.moveTo( 0, 0 );
	this.g.lineTo( 18, 18 );
	this.g.moveTo( 0, 18 );
	this.g.lineTo( 18, 0 );
}

Potential für Verbesserung sehe ich hier:

  • Kreis und Kreuz nur je einmal zeichnen und wiederverwenden (siehe Doku zu Shape), statt jedes mal im Konstruktor.
  • DisplayObject.cache() verwenden.

Meinungen?

Tagged as: Easel, EaselJS, Framework, Javascript, JS, OOP
Add your comment →

0 Comments

Leave your comment below! Cancel Reply

View More Posts:
  • ←
  • →

Suche:

Schubladen:

  • Apropos (55)
  • Computer (211)
    • Arduino (4)
    • Coding (157)
      • CSS (5)
      • Flash (87)
      • Java (2)
      • Javascript (17)
      • PHP (5)
    • Firefox (18)
    • OS X (18)
  • Lustig (86)
  • Musik (50)
  • Photo (30)
    • Photoshop (16)
  • Video (57)
  • Web (94)
  • Werbung (28)

@crusy:

RT @BunterKneten: Mein Körper springt nicht an.
5 hours ago from Twitter for Android
Web-Devs gehen nicht zum Mittag, denn sie bekommen im Büro schon genug Footer.
2 days ago from web
Achtung, der wird schlecht:
2 days ago from web
findet das neue Layout beschissen. Wieso sind Name & Nick jetzt vertauscht? Welches UI-Genie denkt sich das aus? Man findet niemanden wieder
3 days ago from web
RT @jakuuub: Und gleich präsentiert Christian Wulff das iPad 3.
6 days ago from Twitter for Mac

Kommentare:

  • crusy on Van Gogh meets Monkey Island (und mehr!)
  • Stefan Heller on Van Gogh meets Monkey Island (und mehr!)
  • crusy on Arduino mit Eclipse als IDE
  • michael on Arduino mit Eclipse als IDE
  • crusy on AIR Native Extension für Arduino

Tags:

Actionscript Actionscript 3 Addon Adobe AIR Apple AS AS3 Coding Comment Cover CSS Eclipse Facebook FDT Fehlermeldung Film Firefox Flash Flex Font Google Internet iOS iPad iPhone Javascript Kommentar Kunst Mac music Musik Obama OS X OSX Photoshop PHP Plugin Star Wars Video Web Werbung Wordpress XML Youtube

Projekte

  • Bent Larsen
    DAS Film Noir Point-and-Click-Adventure
  • crusy goes sf
    Photoblog aus San Francisco
  • Insignia
    Aufbau. Handel. Herrschaft.
  • nerdeln.de
    Nörgeln für Nerds
  • Photos
    Mein Photoblog
  • Tourtagebuch
    Von sechs Menschen, einer Stadt und keiner Wohnung

Powered by the inLine Minimal WordPress Theme