MX 04: Komponente IN einer Komponente verwenden

mmc-scream

Grünschnabel
Ich habe zwei Komponenten:

- CMenuItem
- CMenuList

In CMenuList ist eine Funktion, die heißt
Code:
public function addItem(item_text:String, item_parent:Number) {
    if( item_parent == undefined )
        item_parent = 0;
    items.push( new CMenuItem(item_parent, item_text) );
}
Beim Kompilieren kriege ich jedoch den Fehler 1142:
Die Klasse 'classes.CMenuItem' konnte nicht geladen werden.
Am Anfang der Datei steht jedoch
Code:
import classes.CMenuItem;
und das funktioniert auch wunderbar. Daran liegt es also nicht.

Liegt es vielleicht daran, dass ich nur die Klasse und nicht die komplette Komponente importiere? Aber wie benutze ich dann die komplette Komponente?

PS: Ich benutze Flash MX 2004
 
Zuletzt bearbeitet:
Hi,

wo genau liegt die Klasse CMenuItem bei Dir (Klassenpfad)?

die Klasse sollte jedenfalls (so weit ich weiss) in der Klasse CMenuList und nicht in der Filmdatei importiert werden.

... ansonsten teste mal import.classes.CMenuItem.*; (wenn es sich um ein Paket mit mehreren Klassen handelt) (Die Fehlermeldung bekommst Du erst beim Instanzieren des Objektes, nicht schon beim Importieren der Klasse)

Gruß
.
 
Die Klasse wird erfolgreich eingebunden. Wenn ich den Pfad ändere, bekomme ich eine andere Fehlermeldung.
Die Fehlermeldung
Die Klasse 'classes.CMenuItem' konnte nicht geladen werden.
bekomme ich nur, wenn ich die Komponente in der Klasse benutze, wie ich es in der oben gezeigten Funktion tue. Nehme ich die Zeile
Code:
items.push( new CMenuItem(item_parent, item_text) );
heraus, so kompiliert er alles (inkl. der swf), ohne zu meckern.
 
Hmm.. auf dei Gefahr, dass ich im Dunkeln tappe (habe grade keine Möglichkeit, das zu testen): Wenn Du eine Klasse in einer anderen Klasse importierst, stimmen dann die Pfadangaben noch? Importierte Pakete werden IMHO mit relativen Pfaden angegeben...

Könntest Du Dein Paket (fla und as) mal Posten? Dann lässt sich das sicher schnell rausfinden.

Gruß
.
 
Sehr seltsam.
Ich habe soeben die Dateien in einen eigenen Ordner kopiert, um alles schön packen zu können, nochmal kurz getestet, dass der Bug auch drin ist, und siehe da: Es funktioniert.

Er zeichnet zwar die Textlabels nicht, aber ich kriege keine Fehlermeldungen. Ich verstehe das nicht... gleiche fla-Datei, gleiche Ordnerstruktur :|.
Jedenfalls danke trotzdem. Falls sich der Fehler dennoch meldet, sag ich es. Vielleicht hab ich nur was übersehen!

*grübel*
PS: Die ganze letzte Woche hab ich damit verbracht, den Fehler zu finden, und das hier auch schon vor längerer Zeit auf flashhilfe.de gepostet. Ich raffs nicht...
 
Sorry wegen Doppelpost, aber ich glaube, er ist gerechtfertigt.

Er lädt scheinbar die Komponente nicht. Ich hab das mal angehängt, bitte schaut euch das mal an.
Danke :)
 

Anhänge

Hi,

nun ja, zunächst einmal sprichst Du Deine MenuList nicht über ihren Instanznamen an (sie hat gar keinen), sondern über den Klassennamen...wenn das eine statische Methode sein soll, fehlt aber das entsprechende Schlüsselwort. ;)

Wenn Du der MenuList einen Instanznamen vergibst, werden zumindest die erforderlichen Klassen importiert (zwei kleine Trace-Aktionen, einmal in der Methode "addItem" und einmal im Konstruktor der Klasse "CMenuItem" konnten mich davon überzeugen). Der Konstruktor von CMenuItem macht allerdings noch nicht viel sichtbares (soweit ich aus dem Überfliegen ersehen konnte; genau bin ich Deinen Code nicht durchgegangen)... ein Importproblem ist es allerdings nicht.

Gruß
.
 
Oh mann, sone shice :D.
Danke fuer den Tipp! Jetzt funktioniert zumindest vorlaeufig alles. Der Text wird zwar immernoch nicht angezeigt, jedoch stimmen nun die Trace Aufrufe und das ist ja die Hauptsache.
Danke fuer die Hilfe


PS: Meine dumme Tastatur ist schon wieder auf Englisch gestellt... argh x(
 
Zurück