[MX] Drehen und Vergößern

Der Shortcut ist mir soweit logisch, aber du vererbst der Klasse alles von MovieClip, überschreibst das ganze danach aber sofort mit Class.prototype, womit alle Eigenschaften und Methoden der Klasse wieder zurückgesetzt werden - soweit ich das zumindest beurteilen kann.

Andersrum, also erst Class.prototype zuweisen und danach vererben macht imho mehr Sinn. :)

Geist
 
stimmt doch nicht lieber geist. :)

PHP:
Class.prototype= new MovieClip()

muss zuallererst kommen. Warum ? weil du dadurch den
constructor aufrufst und den prototype von Class
leerfegst und den prototype der MovieClip-Klasse
einfügst. anschliessend fügst du deine eigenen
Methoden der Klasse Class hinzu (dabei wird nichts
überschrieben, sondern nur hinzugefügt !)

aber damit erzähl ich Dir ja nichts neues, oder ?
Missverständnis ?


gruss skyla
 
was erwartest du denn ?

createEmptyMovieClip() ist eine Methode der Klasse
MovieClip und cp ist ja keine Instanz der Klasse MovieClip.
cp ist übrigens auch undefined in deinem beispiel.




PHP:
function Class(){}
Cp = new MovieClip();
Cp = Class.prototype;
trace(typeof Cp);
 
Joa, aber tracen klappt zumindest andersrum:
PHP:
function Class() {}

Cp = Class.prototype;
Cp = new MovieClip();

trace(Cp.createEmptyMovieClip);

blubb = new Class();
blubb.createEmptyMovieClip("blobb", 1);
Nur erzeugt er mir keinen MC, warum auch immer...ne eigene Timeline hat blubb sowieso nicht, weil's wie du geschrieben hast ja keine Instanz von MovieClip ist, aber trotzdem kennt's ja die Methoden und müsste afaik auf der nächstbesten Zeitleiste, eigentlich _root, den MC generieren.

Bin mir aber auch so nicht ganz im klaren, geb ich schon zu. :)

Gruß,
Geist
 
hi geist

PHP:
Cp = Class.prototype;
Cp = new MovieClip();

ist ja einfach der shortcut für
PHP:
Class.prototype=new MovieClip();

und bewirkt ja einzig, dass die Klasse Class
alle Methoden der MovieClip-Klasse vererbt
bekommt und generiert ja keinen neuen mc oder
so. ist klar.

und das macht ja nur Sinn, wenn du die mit

PHP:
Object.registerClass('linkage_mc',Class)

einen mc aus der Bilbiothek mit deiner
Action-Script-Klasse verbinden willst.

Zwingend musst du dann per attachMovie deinen
linkage_mc auf die bühne holen. und jetzt
ganz wichtig:

linkage_mc wird nun nicht der Klasse MovieClip
zugeteilt, sondern der Klasse Class !
Dies bedeutet, dass sämtliche Methoden der
as-Klasse Class deinem mc auf der bühne zur
verfügung stehen.

einverstanden ?
 
Vollkommen einverstanden Skyla, soweit sind wir auf der gleichen Wellenlänge - zwar auch schon vorher gewesen, aber ein wenig Verständniskrämerei kann nicht schaden. ;)

Nochmal die Sache, die ich meinte:

Dein Script hatte die Form hier:
PHP:
function Class() {}

Cp = new MovieClip();
Cp = Class.prototype;

trace(Cp.createEmptyMovieClip);
wobei du siehst, dass das tracen nur undefined ausgibt.

Bei der von mir gemeinten Sache wäre das wie folgt:
PHP:
function Class() {}

Cp = Class.prototype;
Cp = new MovieClip();

trace(Cp.createEmptyMovieClip);
und die Vererbung scheint immerhin geklappt zu haben...

Dass beide Varianten hinterher aber überhaupt nicht wirken, wenn ich eine Instanz der Klasse "Class" erstelle und bei dieser die Verfürbarkeit der Methode prüfe, hab ich bis dahin nicht realisiert gehabt - dennoch scheint ja bei deiner Vererbung die Methode überhaupt nicht da zu sein...!?

Was überseh' ich nur? :(

Geist
 
Hallo Geist

sorry für die verwirrung. in meinem script ist die zeile


PHP:
Cp = new MovieClip();

gar nicht notwendig. hab den code umgeschrieben, und
hab die zeile vergessen rauszulöschen dazu hab ich
noch deinen post falsch interpretiert und mein script
gar nicht so mehr genau angeshen. sorry mein fehler.

muss jetzt wohl schlafen gehen... :)

cu
 

Neue Beiträge

Zurück