Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-09-2004, 22:06   #1 (permalink)
Zeus
Gast
 
Beiträge: n/a
Object.registerClass() - Doh!

Hi,

jetzt brennt die Hütte so langsam...

Ich habe eine externe Bibliothek, die geladen wird. In dieser befinden sich zahlreiche Objekte jeweils in einem Keyframe. Über eine Funktion des Hauptfilms wird das jeweils aktuelle Objekt 'attached'. Wunderbar.

Jedes Objekt soll jetzt mit Funktionalitäten versehen werden. Primär erst einmal ein simples Drag 'n' Drop.

Per Object.registerClass() soll nun jede Instanz diese Funktionalitäten erhalten.

Skript im Frame 1 des Hauptfilms:
PHP-Code:
function dsObjFunktionen () {}
dsObjFunktionen.prototype = new MovieClip();
dsObjFunktionen.prototype.onMouseDown = function() {
    
this.startDrag(false);
}
dsObjFunktionen.prototype.onMouseUp = function() {
    
this.stopDrag();
}
trace(Object.registerClass(_root.dsAktObj_root.dsObjFunktionen)); 
Das trace liefert 'true' zurück - hat also geklappt. In dsAktObj ist jeweils die Symbol-ID des attachten Clips gespeichert.

Dummerweise klappt das aber nur beim ersten 'attachten' Clip. Bei allen anderen tut sich nix.

Hab das auch schon mit einer AS2.0 Klasse porbiert - selbes Ergebnis. Muss für jedes einzelne Objekt eine neue MovieClip-Instanz angelegt werden?

I don't get that...

Danke für jeden Tipp!
  Mit Zitat antworten
Alt 13-09-2004, 22:22   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Hi Zeus,

der Returnwert von registerClass sagt leider nicht viel aus, ich glaub es wird nur die Anzahl der Parameter geprüft.

Du müsstest registerClass für jede LinkageId aufrufen, die du mit der Klasse verknüpfen willst. Und es muss passieren, bevor das jeweilige Symbol auf der Bühne erscheint. Wenn du mit attachMovie arbeitest, kannst du das unmittelbar vorher machen, die LinkageId hast du in dem Moment ja eh schon parat.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 13-09-2004, 22:34   #3 (permalink)
Zeus
Gast
 
Beiträge: n/a
Danke Ralf,

die Symbol-ID ist ja für jedes Objekt vergeben. Da möchte ich dann - wenn es denn mal klappen sollte - in einer einfachen Schleife durch, damit alle Objekte die Funktion erhalten. So weit bin ich aber noch nicht...

Selbst wenn ich Object.registerClass("arbeitsplatz1", _root.dsObjFunktionen); aufrufe und den Clip entsprechend 'attache', macht's mir nur bei der ersten Instanz. Ich hab das recht einfach so wie Du im anderen Post vorgeschlagen hast, gelöst. Generischer Button attached aktuelles Objekt aus externem, geladenem SWF. Jedes Objekt hat dabei einen eindeutigen Bezeichner.

Füge ich eine zweite Instanz hinzu, kann ich diese einfach nicht draggen. Es wird immer nur Instanz 1 gedraggt.

Ich bin kurz davor, in die externe Lib für jedes Objekt einen Button einzufügen... echt... Seit 15 Stunden eier ich mit dem Mist jetzt rum... und witzigerweise passiert das Gleiche in AS2.0

*ausdemfensterspring*
  Mit Zitat antworten
Alt 13-09-2004, 22:36   #4 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
In Object.registerClass("arbeitsplatz1", _root.dsObjFunktionen);
ist arbeitsplatz1 die gleiche Id, die du auch bei attachMovie als erstes angibst, nicht etwa ein Instanzname.

mfg.r
bokel ist offline   Mit Zitat antworten
Alt 13-09-2004, 22:48   #5 (permalink)
Zeus
Gast
 
Beiträge: n/a
yes. ist es.

--> www.zeusmedia.de/fileadmin/_temp_/clipid.gif
  Mit Zitat antworten
Alt 13-09-2004, 22:52   #6 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Hm, dann wuesste ich nichts mehr, was dagegen spräche, dass es funktioniert.
Bau doch mal ein minimales nicht funktionierendes Beispiel und lad es hoch.
mfg .r
bokel ist offline   Mit Zitat antworten
Alt 13-09-2004, 23:22   #7 (permalink)
Zeus
Gast
 
Beiträge: n/a
Mach ich moin früh mal... guds nächtle...
  Mit Zitat antworten
Alt 14-09-2004, 07:58   #8 (permalink)
Zeus
Gast
 
Beiträge: n/a
Moin...

www.etypo3.de/intern/rafura_ds_backend.html

140 KB, kein Preloader. Wenn Du unter Werkzeuge auf die Diskette klickst, bekommste ne XML-Ausgabe des Container-MC's mit den Objekten.

Achja, erst auf Neue Etage klicken. Grundriss auswählen und ne Raumgruppe zuweisen. Dann gehen tun mit Objekte... mach's nur mit dem ersten Tisch...
  Mit Zitat antworten
Alt 14-09-2004, 10:28   #9 (permalink)
Verdeckter Ermittler
 
Registriert seit: Oct 2001
Beiträge: 278
[Flash MX 2004] - Object.registerClass() - Doh!

Mit onPress=function(){} sollte es eigentlich gehen.
Wenn du onMouseDown verwendest, musst du den hit abfragen.

function dsObjFunktionen() {
}
dsObjFunktionen.prototype = new MovieClip();
dsObjFunktionen.prototype.onMouseDown = function() {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
this.startDrag(false);
}
};
dsObjFunktionen.prototype.onMouseUp = function() {
this.stopDrag();
};
__________________
pollux
pollux ist offline   Mit Zitat antworten
Alt 14-09-2004, 10:42   #10 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Genau, pollux hats.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 14-09-2004, 11:16   #11 (permalink)
Zeus
Gast
 
Beiträge: n/a
Funktioniert... *sniff*

Vielen lieben Dank, ich kündige jetzt, kauf mir n Boot und steige aus... kein Bock mehr...

Ich hatt's orginaaaal vorher auf nem onPress, aber an einer andere Stelle noch probs... *heul*
  Mit Zitat antworten
Alt 14-09-2004, 12:55   #12 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Boot bin ich dabei, aber nicht für die Sieg

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 14-09-2004, 14:59   #13 (permalink)
Zeus
Gast
 
Beiträge: n/a
Nönö, Ferienhaus in der Nähe vom Ijselmeer existiert ja... guter Startpunkt... Grachten vernichten *g*
  Mit Zitat antworten
Alt 14-09-2004, 15:28   #14 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Grachten? Du meinst Grolsch?


mfg r.
bokel 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 22:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele