| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jan 2006
Beiträge: 37
| Zählvariable funktioniert nicht!?
Hallo Leute, ich habe ein kleines Problem. In meiner Animation ist einer Variable x der Wert 100 zugewiesen ( var x= 100; ). Dann gibt es noch einen Button. Bei jedem Klick auf den Button soll der Wert um 1 erhöht werden. Dazu habe ich folgende Zeile als ActionScript in den Button eingefügt: on (press) { x = x+1;}. Der aktuelle Wert wird in einem dynamischen Textfeld wiedergegeben. Leider kann ich so oft klicken, wie ich will, der Anfangswert 100 verändert sich nicht..... Entdeckt vielleicht jemand den Fehler? Wäre echt toll.....Danke schonmal für die Hilfe! Gruß Citrix |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jan 2006
Beiträge: 37
|
Mein Code ist folgender: In der Hauptzeitleiste: var x = 100; Im Button: on ( press) { x = x + 1; } oder alternativ: on ( press) { x++; } Beides funzt nicht wirklich....bei der ersten Variante bleibt der Zähler immer auf 100, bei der zweiten variante kommt die Fehlermeldung " ; expected " |
| | |
| | #7 (permalink) |
| Flashworker Registriert seit: Nov 2001 Ort: Wiesbaden
Beiträge: 10.945
|
wenn der button in wirklichkeit ein movieclip ist, dann musst du wegen der hirachie aufpassen. ist etwas komisch gelöst, aber daher immer sowas wie this._parent davor hauen wenn du eine Ebene höher willst. Wobei er dennoch die Variable hochzählt, aber geht dann eben bei 1 los. Ich vermute dass du ein Textfeld hast, das die _root Variable anzeigt und in deinem Button (eigentlich MC) eine weitere Variable hochgezählt wird, die aber nicht angezeigt wird |
| | |
| | #8 (permalink) |
| lernwillig Registriert seit: Jan 2002 Ort: auf dem Land
Beiträge: 1.327
|
Man kann sich auch anzeigen lassen, welchen Wert die einzelnen Variablen haben. > Steuerung > Film testen > Fehlersuche > Variablen auflisten Da kommst Du vielleicht eher auf die Spur. Gruss 23012 |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Jan 2006
Beiträge: 37
|
Hallo leute, das mit dem Hochzählen habe ich jetzt auch hinbekommen, aber nun habe ich ein anderes Problem: Die Variable x ist in einem Layer mit var x= 100; deklariert. Nun habe ich in einem anderen Layer die Funktion button.onPress = function(){ x=x+1}. Das Hochzählen funktioniert auch wunderbar, aber der aktuelle Wert von x wird nicht zurückgegeben. Das erkenne ich daran, dass der aktuelle Wert von x in einem MC wiedergegeben werden soll. Und obwohl durch das Klicken auf den Button die Variable hochgezählt wird, bleibt in der Anzeige die 100 stehen. Ich denke mal, das liegt an der Kommunikation zwischen den Funktionen? Kann mir jemand bei dem Problem helfen? Das wäre super toll.....
|
| | |
| | #10 (permalink) |
| Flashworker Registriert seit: Nov 2001 Ort: Wiesbaden
Beiträge: 10.945
|
Bitte deine Texte zukünftig etwas mehr strukturieren. Du hättest vielleicht auch die Beiträge lesen sollen. Es ist wieder das gleiche Hirachie Problem. Wenn du auf der Hauptzeitleiste eine Variable erstellst (und veränderst), dann ist diese Variable nur da verfügbar. Also entweder weißt du deinem MC diese Variable auch zu oder du greifst vom Textfeld aus auf _root zu. Ein paar Möglichkeiten ActionScript:
Das gleiche kannst du im Prinzip vom MC aus machen und auf den darüberliegenden x Wert zugreifen. |
| | |
| | #11 (permalink) |
| Neuer User Registriert seit: Jan 2006
Beiträge: 37
|
OK, vielen Dank....damit wäre dann das Problem mit der Anzeige gelöst ( habs noch nicht ausprobieren können ). Aber wie sieht es mit den variablen aus. Die variable x wurde ja im Hauptzeitfenster deklariert, durch Drücken eines Buttons im Layer darunter wird sie dann verändert. Muss ich hier auch this. einsetzen? Zum Bsp. so?: [ActionScript] Im Layer 1 des Hauptzeitfensters: var x=100; Im Layer 2 des Hauptzeitfensters: Button.onPress=function(){this.x=this.x+1} [/ActionScrpit] |
| | |
| | #13 (permalink) |
| Neuer User Registriert seit: Jan 2006
Beiträge: 37
|
Das mit dem Button.onPress war ja nur ein veranschaulichendes Besipiel! Aber wenn ich nichts am Code verändere funktioniert die Rückgabe nicht. Ich möchte das mal kurz am Beispiel zeigen: Code: 1. Layer: var x=100; /*Test:*/ if(x>105){Grafik1._visible=true};
2. Layer: Button.onPress=function(){x=x+1;if(x>105){Grafik2._visible=true} Geändert von Citrixon (24-04-2006 um 12:33 Uhr) |
| | |
| | #14 (permalink) |
| Flashworker Registriert seit: Nov 2001 Ort: Wiesbaden
Beiträge: 10.945
|
Na ja die erste If Abfrage wird nur einmal aufgerufen, direkt nachdem x auf 100 gesetzt wurde. Daher kann diese nicht true ergeben Die zweite Abfrage wird bei jedem onPress ausgeführt, daher ergibt sie irgendwan true. |
| | |
| | #15 (permalink) |
| Neuer User Registriert seit: Jan 2006
Beiträge: 37
|
Aber Du meinst, die variable wird dann trotzdem "global" verändert? Wenn ich zum Beispiel in der Buttonfuntion an letzter Stelle Code: gotoAndPlay(1) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |