Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-01-2006, 19:25   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 219
Klasse MovieClip erweitern (oder so)

Hallo Flasher,

ich bin nun dabei, mich in die Zeichenfunktionen meines Flash MX einzuarbeiten. MovieClip.lineTo und curveTo sind ja ganz nett, aber ich würde mir gerne noch ein paar höhere Funktionen dazu programmieren. Ein MovieClip.drawPolygon beispielsweise wäre praktisch, wenn es anschließend in allen MovieClip-Objekten zur Verfügung steht.

Aber wie erweitere ich die Klasse MovieClip? Geht sowas?

-- sterlu
sterlu ist offline   Mit Zitat antworten
Alt 05-01-2006, 20:11   #2 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
PHP-Code:
MovieClip.prototype.deineNeueZeichenMethode = function(){

//aktion


beispiele: Teilkreis mit AS

Geändert von michael (05-01-2006 um 20:13 Uhr)
michael ist offline   Mit Zitat antworten
Alt 05-01-2006, 20:35   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 219
Ah, das ist gut zu wissen, danke!

... es tut aber anscheinend nicht ganz das, was ich mir in meiner Naivität vorgestellt habe ...

Ich habe folgendes Problem dabei: Normalerweise gebe ich ja, bevor ich ein lineTo verwende, zunächst ein lineStyle an. Danach zeichnet die Funktion lineTo automatisch mit diesen Parametern. Wenn ich aber eine neue Methode drawPoly() definiere, dann funktioniert diese nur, wenn ich IN ihr ein lineStyle aufrufe, sie kennt also die vor dem Methodenaufruf AUSSERhalb gesetzten Parameter aus lineStyle() nicht. Ich dachte, wenn ich drawPoly von einer objektunabhängigen Funktion zu einer MovieClip-Methode mache, wäre ich dieses Problem los, aber das ist wohl nicht so.

Beispiel: Dieser Code zeichnet nur dann ein Dreieck, wenn ich die zweite Zeile wieder aktiviere. Das lineStyle() aus Zeile 12 hat keinen Einfluss auf die Methode:

Code:
MovieClip.prototype.drawPoly = function( points ) {
//	lineStyle (1, 0x000000, 100);
	moveTo ( points[0][0], points[0][1] );
	for ( i=1; i<points.length; i++ ) {
		lineTo ( points[i][0], points[i][1] );
	}
	lineTo ( points[0][0], points[0][1] );
}

_root.createEmptyMovieClip( "test", 1 );
with (_root.test) {
	lineStyle (1, 0x000000, 100);
	drawPoly ( [ [0,0], [100,0], [200,100] ] );
}
-- sterlu
sterlu ist offline   Mit Zitat antworten
Alt 05-01-2006, 21:20   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 219
OK, ich habs selbst gefunden: "this.lineTo()" löst das Problem anscheinend.

-- sterlu
sterlu ist offline   Mit Zitat antworten
Alt 05-01-2006, 21:34   #5 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
jo seit flash6 muss da immer this in die prototype-funktionen, also auch bei moveTo und lineStyle, kannst das natürlich mit with(this){} zusammenfassen

die zählvariable i solltest du mit dem schlüsselwort var deklarieren, sonst fliegt i auf der zeitleiste rum, wird aber nur bei ausführen der funktion gebraucht.
michael ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele