Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash CS3 Professional

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-02-2010, 12:08   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 7
Combobox in child swf funktioniert trotz lockroot nicht

Folgendes Problem:
Wenn test2.swf das zweite mal geladen wird, dann kann die Comboxbox nicht mehr geöffnet werden!


Ablauf
test2.swf enthält eine Combobox

1. Button in test1.swf lädt test2.swf
2. combobox von test2.swf kann geöffnet werden
3. button in test2.swf lädt wieder test1.swf (schließen von test2.swf)
4. Button in test1.swf lädt test2.swf
5. combobox von test2.swf kann geöffnet NICHT GEÖFFNET werden

Folgende Tipps hab ich schon ausprobiert
1. lockroot im child swf (also test2.swf)
2. Combobox in die library in test1.swwf einfügen.

es funktioniert aber leider nicht:

Forum Artikel:combobox funktioniert eingebunden nicht

Forum Artikel 2

Freue mich, falls wer einen den Fehler findet!!
Angehängte Dateien
Dateityp: fla test1.fla (329,0 KB, 2x aufgerufen)
Dateityp: fla test2.fla (334,0 KB, 2x aufgerufen)
jaycop ist offline   Mit Zitat antworten
Alt 27-02-2010, 13:08   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Du solltest nicht vergessen, auch in test1.swf in die Bibliothek eine ComboBox zu legen...
  Mit Zitat antworten
Alt 28-02-2010, 08:48   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 7
die Combobox-Komponente ist bereits in der Bibliothek von test1.swf. Ich habe auch schon probiert eine Combobox auf die Bühne zu legen - leider aber ohne Erfolg



Muss ich von der Combobox noch eine Instanz erzeugen?
jaycop ist offline   Mit Zitat antworten
Alt 28-02-2010, 11:19   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Im Testmodus funzt es bei mir ohne große Probleme. Du hast allerdings im Zusammenhang mit der Komponente den getNextHighestDepth() genutzt, der hat leider in den älteren Flashversionen den Fehler, dass er die Komponente auf die höchstmögliche Tiefe plus 1 gesetzt hat, und das kann dann Probleme auslösen. Nimm in solchen Fällen besser eine statisch gesetzte Tiefe von bspw. 10. Da die Box aber auf der Bühne liegt, ist eine Tiefenfestsetzung hier erst mal überflüssig.

Darüberhinaus hast du ein paar Anweisungen im Script, die besser überdacht werden sollten. Ein "_lockroot" bspw. benötigst du nur, wenn du den nachgeladenen Film auch zu einer Hauptzeitleiste machen willst und dabei "_root"-Anweisungen nutzt.

Globale Anweisungen solltest du ganz weglassen, das lässt sich meist auch besser scripten. Und unloadMovie ist auch fast immer überflüssig, denn man kann mit einem createEmptyMovieClip den vorhandenen MC einfach überschreiben.

Außerdem würde ich die Scripte alle auf die Hauptzeitleiste legen. Scripte auf Buttons lassen sich schwer warten und pflegen.

Und um den Wechsel zwischen der Sichtbarkeit der MCs zu erreichen, würde ich bspw. alles, was auf der Hauptzeitleiste im Hauptfilm liegt, in einen Container-MC konvertieren. Dann kannst du dessen _visible-Eigenschaft auf false stellen, um den MC nach dem Laden von test2 zu verstecken und auf true, wenn er wieder gezeigt werden soll.

Hier mal die beiden Scripte (Scripte auf den Buttons sind gelöscht, Buttons haben die Instanznamen meinButton in test1 und meinButton2 in test2):
PHP-Code:
//test1 auf der Hauptzeitleiste:

//Text und Button "meinButton" liegen in MC "mc":
mc.meinButton.onRelease = function(){
    
_root.mc._visible false;
    
_root.createEmptyMovieClip("con",1);//MC wird immer überschrieben, deshalb kein unload notwendig
    
_root.con.loadMovie("test2.swf");
}
stop();

//test2 auf der Hauptzeitleiste:
var dieseZeitleiste this;
meinButton2.onRelease = function(){
    
dieseZeitleiste._visible false;//diesen MC verstecken
    
_root.mc._visible true;//test1 mit MC wieder zeigen
}


//this._lockroot = true;//überflüssig

combobox1.drawFocus null;
combobox1.dropdown.drawFocus null;

//_global.depth_counter = this.getNextHighestDepth();//überflüssig, Box liegt ja auf der Bühne
// this.createClassObject(ComboBox, "combobox1",_global.depth_counter);//überflüssig, da die Box auf der Bühne liegt

combobox1.addItem({data:0label:"0"});
combobox1.addItem({data:1label:"1"});
combobox1.addItem({data:2label:"2"});
combobox1.addItem({data:3label:"3"});
combobox1.addItem({data:4label:"4"});
combobox1.addItem({data:5label:"5"});

//oh, meine alten Scripte kommen wieder zur Geltung...
comboBoxListener = new Object();
comboBoxListener.change = function(eventObj) {
    var 
eventSource eventObj.target;
    var 
theSelectedItem eventSource.selectedItem;
    var 
theSelectedItemLabel theSelectedItem.label;
    
msg "You selected "+theSelectedItemLabel+".";
    
statusMessage.text msg;
};
combobox1.addEventListener("change"comboBoxListener); 

combobox1.open(); 
  Mit Zitat antworten
Alt 01-03-2010, 20:03   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 7
Hallo Holger!

vielen dank nochmals für die ausführliche hilfe! Es hat funktioniert
jaycop 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash CS3] AS3: Child oder nicht Child.... Capri Flash Einsteiger 3 11-02-2009 16:45
Daten aus php laden funktioniert nicht trotz lockroot stens ActionScript 1 1 27-11-2006 20:50
combobox funktioniert eingebunden nicht sandy_w220 Komponenten und SmartClips 5 29-05-2006 14:54
selectedIndex für Combobox funktioniert nicht RevX Flash 8 2 06-02-2006 14:06
zeilenumbruch funktioniert trotz explicieter width anagbe nicht wuz HTML und CSS 1 23-05-2004 15:07


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele