Button Problem nach Combobox Aktion

Hi Flasher,
Ich hab nen komisches Problem. Hab nen Mc gebastelt der mehrere Comboboxen enthält. Dort kann der User Farben von Elementen auf dem Haubt MC aussuchen. Klappt auch alles wunderbar. Jetzt tritt aber vollgenes auf, sobald der Usere ne Farbe per Combobox gewählt hat und den Übernehmen button drückt, wechselt die Farbe aber alle anderen Buttons egal im welchen Mc und welches Level funktionieren nur noch beim ersten Klick. Wenn man den Button dann nochmal drücken will muss man erst die Maus bewegen. Erst dann ist erneutes drücken möglich.
Der Mc mit den Comboboxen hat dieses Script:
Code:
var Colorpfad = new Array ("_root.Karte.map.targetwagen", "_root.Karte.map.targetregal")

var Ziel = true;
var Ziel2= true;


function color_change (){
	for (var i=1; i<=10; i++) {
		Boxen =  this["box" + i].getValue();
                //Boxen sind die Comboboxen
		Vorschau =  this["Vor" + i];
               // Vorschau ist nen kleines Viereck das halt die Farbe ändert
		colors();
	}
}

function colors (){
	switch (Boxen){
	case "Blau":
	color1=new Color(Vorschau);
	color1.setRGB(0x170CFE);
	break;
	case "Rot":
	color2=new Color(Vorschau);
	color2.setRGB(0xFF0B0B);
	break;
	case "Gelb":
	color3=new Color(Vorschau);
	color3.setRGB(0xF2FE0C);
	break;
	case "Grün":
	color4=new Color(Vorschau);
	color4.setRGB(0x29FF0B);
	break;
	case "Braun":
	color5=new Color(Vorschau);
	color5.setRGB(0xB67854);
	break;	
	case "Orange":
	color6=new Color(Vorschau);
	color6.setRGB(0xFBA20F);
	break;	
	case "Violett":
	color7=new Color(Vorschau);
	color7.setRGB(0xFE0CF2);
	break;	
	case "Türkis":
	color8=new Color(Vorschau);
	color8.setRGB(0x0BFFFF);
	break;	
	case "Schwarz":
	color9=new Color(Vorschau);
	color9.setRGB(0x000000);
	break;	

	}
}

// Hier mach Ich nen Lister der überwacht ob sich die ComboBox ändert

form = new Object();
form.change = function(eventObj){
 color_change();
}

// Hier setzt Ich das default bei den Boxen
this.box1.addItemAt (0, "Blau");
this.box3.addItemAt (0, "Gelb");
this.box4.addItemAt (0, "Rot");
this.box7.addItemAt (0, "Grün");

// Dann den ganzen Inhalt
for (var N=1; N<=10; N++) {
this["box" + N].addItem("Schwarz"); 
this["box" + N].addItem("Blau"); 
this["box" + N].addItem("Rot"); 
this["box" + N].addItem("Gelb"); 
this["box" + N].addItem("Grün"); 
this["box" + N].addItem("Braun"); 
this["box" + N].addItem("Orange"); 
this["box" + N].addItem("Violett"); 
this["box" + N].addItem("Türkis"); 
this["box" + N].addEventListener("change", form);
}

// Und lösch was evt doppelt drin ist
this.box1.removeItemAt(2);
this.box3.removeItemAt(4);
this.box4.removeItemAt(3);
this.box7.removeItemAt(5);

color_change();
//Die Vorschau wird beim öffnen des MC nach dem Inhalt der Boxen geändert.

Auf dem Button ist es dann ähnlich, ändere nur die Variable Vorschau mit den Daten aus dem Array welche die Pfad angaben enthält.
Code:
on (release){
	for (var i=1; i<=2; i++) {
	Boxen =  this["box" + i].getValue();
	Vorschau = Colorpfad[i - 1];
colors();
	}
}



Mein allgemeines Problem ist auch das Ich mir grad MX2004 anschau. In MX hatte Ich Probleme mit den Boxen und konnte es unter der Trial von 2004 lösen. Das gesammte Projekt wurde aber in MX gebaut und nur den MC mit den Farben und Boxen in MX2004.
Mit 2004 kenne Ich mich garnicht aus, naja und mit Flash eigentlich auch nett besonders ;-)
danke für eure mühe das zu lesen,
hoffentlich hat jemand nen Tipp für mich.
gruß CM


Noch ne schnelle Anmerkung, im Debugger tauchte sowas auf:
Variable _level0.focusManager.lastMouse = [Objekt #937, Klasse 'Object'] {
x:618.95,
y:207
}
hat das mit dem Lister zu tun?
gruß CM
 
Zuletzt bearbeitet:

Tobias Menzel

Erfahrenes Mitglied
HI,

grob kann ich mir zwar vorstellen, was Du damit bezwecken willst, aber soweit ich das sehe, überprüfst Du nirgendwo, welche Combobox mit welchem Wert nun gewählt wurde... ?

Kannst Du die Datei bitte einmal anhängen? So ein Problem lässt sich viel besser "in situ" debuggen, als durch reines Betrachten eines Scriptausschnittes. ;)

Gruß
.
 
Hi Datic,
hm *unschuldig in die Luft schau*, ähm ja könnt sein das Ich nicht nachschau welche Box gewählt wurde. Hab Ich nicht so hinbekommen, und spontan die Boxen durchnummeriet und einfach auch die Aktionen durchgezählt. Wenn eine Box geändert wurde ändert er alles, da er in Schleifen alle Boxen und Aktionen durchgeht.

Ich hab mal ne bsp Fla gebaut, da fällt jetzt nur nicht auf das Die Buttons eigentlich immer gehen bis halt das MC geladen wurde. In der BSP Fla wird es ja direkt als _root geladen.
gruß CM
 

Anhänge

  • bsp-fla.zip
    192,2 KB · Aufrufe: 16

Tobias Menzel

Erfahrenes Mitglied
Ok, jetzt ist mir klar, wie Du das angehst.... funktioniert auch (soweit ich das sehen kann) alles.

Was soll nun aber das Problem sein bzw. Wo muss ich erst die Maus bewegen, bis was passiert? :confused:

Gruß
.
 
Sry war einkaufen. Ich hasse das Samstags, naja. ;-)
Hm ja soweit geht alles, Nur wenn du mal schaust mit den grünen Buttons kann man ja den Alpha wert der ersten ausschalten. Wenn man jetzt den Button drückt und direkt danach wieder ändert sich nichts mehr. Erst ne sekunde später oder wenn man die maus bewegt hat kann man wieder ne Funktion auslösen. Obwohl das klingel Geräusch immer kommt. Problem daran ist das Ich auf dem Haubtmc ein paar Buttons habe wo Ich die Position eines MC veränder. Das Ist nervig jetzt immer den Mauszeiger zu bewegen wenn man einmal geklickt hat.
Schön bei mir zu erkennenan den grünen Buttons, ändert sich ja immer von grün auf rot und andersrum. Wenn ich wiegesagt eine Combobox auslöse Reagiern bei mir die Buttons anders als gewohnt.

Edit: Die kleinen code Fehler die Ich beim aufbau der bsp-fla gemacht hab einfach mal übersehen ,-)
 

Tobias Menzel

Erfahrenes Mitglied
Ähem.

Könnte das nicht einfach daran liegen, dass Du beim Einblenden so etwas:
PHP:
_root.Karte.map.targetregal._alpha = 100
stehen hast, und _root.Karte.map einfach nicht definiert ist?

Gruß
.
 
Das war der code Fehler den Ich grade meinet, Nein und selbst wenn sollte sich bei mir ja wenigstens der button von grün auf rot ändern.
Hm Anscheinend ist das Problem bei dir nicht?
Ich habs jetzt schon zweimal einmal logischerweise im Original und in der bsp-Fla.
 

Tobias Menzel

Erfahrenes Mitglied
Nee, bei mir ändert sich der Button wie er es sollte.

Allerdings hast Du die Variable "Ziel" auch auf Button3 usw. verwendet, was zu Konflikten führt, da diese Variablen bei Schaltflächen auf der Hauptzeitleiste angelegt werden.

Sinnvoller wäre es, statt Schaltflächen MovieClips zu verwenden und "Ziel" jeweils als lokale Variable des Buttons anzulegen. Alle anderen Objekte müssten dann lediglich im on(press)-Handler mit einem _parent adressiert werden.

Gruß
.
 
hm das ist dann ja noch komischer. Bei mir und auch bei dem Laptop meiner Freundin hab Ich das Problem. Eine auswahl in der Combobox getroffen und schon kann ich den Button nur einmal drücken. Dann Mausbewegen wieder einmal bewegen, drücken und so weiter. Kann das an der Trial liegen mit der Ich Arbeite (MX2004) ? Ich verstehe dann aber trozdem nicht warum es bei dir klappt. Hm eigentlich bin ich jetzt richtig verwirrt ;-)
 

Tobias Menzel

Erfahrenes Mitglied
Oh. :eek: Jetzt habe ich es auch gesehen: Ich habe in der Tat vergessen, zuerst eine Combobox auszuwählen.

Ich habe das direkt mit einer neuen Datei getestet, die nur eine Combobox und einen Button enthält und siehe da: das selbe Problem macht sich bemerkbar.

Ich vermute, dass es mit der Tiefenebenensteuerung der Komponenten zusammenhängt, die dafür sorgt, dass z.B. Komboboxen immer im Vordergrund liegen, wenn man die Optionen öffnet. Die Box erstellt vermutlich eine unsichtbare Ebene über allen anderen Objekten, die Deinem onRelease-Handler in die Quere kommt.

Ich werde das mal noch etwas weiter untersuchen und etwaige Ergebnisse hier posten.

Gruß

EDIT: Meine ersten "Verdächtigen" waren die Objekte _root.reserved und _root.depthChild0 - allerdings führten Versuche, beide Objekte zu manipulieren (Tiefen verschieben, Instanzen löschen) bislang zu nichts. Auch das Herumspielen mit dem focusManager blieb bisher Ergebnislos...
.
 
Zuletzt bearbeitet: