Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-07-2007, 14:06   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
klitzekleines variablenproblem

edit: schaut bitte auf seite 2

hallo.

ich habe 2 dynamische Textfelder mit den variablennamen "vintervall" und "vtag".
"vintervall" wird durch einen mc der 2 frames lang ist mit:
frame1:
PHP-Code:
 _root.vintervall _root.vintervall 1
frame2:
PHP-Code:
 _root.vintervall _root.vintervall 1;
gotoAndPlay (1); 
gesteuert. der wert von "vintervall" wird somit pro sekunde um 25 erhöht. eben in 25 einzelschritten. das funktioniert soweit auch.

was ich nun möchte ist, dass "vtag" immer dann um 1 erhöht wird, wenn "vintervall" die werte 200, 400, 600, 800, .. .. .. usw hat.

folgenden code verwende ich, nur leider funktioniert der nicht. vtag bleibt immer auf 1:
PHP-Code:
var vintervallvtagvtagx
vintervall 
0;
vtag 1;
vtagx 200;
if (
_root.vintervall == _root.vtagx) {
    
_root.vtag _root.vtag 1;
    
_root.vtagx _root.vtagx 200;

ich hoffe, ihr könnt mir helfen
danke

Geändert von Real2k (04-07-2007 um 08:42 Uhr)
Real2k ist offline   Mit Zitat antworten
Alt 03-07-2007, 14:10   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
PHP-Code:
_root.vtag Math.floor(_root.vintervall/200
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 03-07-2007, 14:13   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
da blick ich jetz nicht so ganz durch. ich muss der variable ja sagen dass sie immer um 1 erhöht werden soll, wenn _root.vintervall durch 200 teilbar ist.

wenn ich deinen codeschnipsel in die if-bedingung einbaue tut sich nix. und tag tag bleibt auf 0 ..
Real2k ist offline   Mit Zitat antworten
Alt 03-07-2007, 14:19   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
if-Bedingung ganz weg. Dann sollte das auch gehen.

Alternative wäre:
PHP-Code:
if (_root.vintervall%200 == 0) { 
    
_root.vtag += 1

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++

Geändert von Der Frager (03-07-2007 um 14:21 Uhr)
Der Frager ist offline   Mit Zitat antworten
Alt 03-07-2007, 14:21   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
PHP-Code:
var vintervallvtagvtagx
vintervall 
0;
vtag 1;
vtagx 200;
_root.vtag Math.floor(_root.vintervall/200
so tut sich auch nix
Real2k ist offline   Mit Zitat antworten
Alt 03-07-2007, 14:22   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
mit
PHP-Code:
var vintervallvtagvtagx
vintervall 
0;
vtag 1;
vtagx 200;
if (
_root.vintervall%200 == 0) {  
    
_root.vtag += 1;  

springt er direkt am anfang auf tag2 und danach tut sich nix mehr
Real2k ist offline   Mit Zitat antworten
Alt 03-07-2007, 14:24   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
hmmm... Einfach mal in eine leere Datei:
PHP-Code:
_root.vintervall 0;
this.onEnterFrame = function() {
    
_root.vtag Math.floor(_root.vintervall/200);
    
_root.vintervall++;
    
trace(_root.vintervall);
    
trace(_root.vtag);
}; 
edit: Und wenn du in Bild1 deine Variablen immer wieder überschreibst, dann musst du dich auch nicht wundern.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++

Geändert von Der Frager (03-07-2007 um 14:25 Uhr)
Der Frager ist offline   Mit Zitat antworten
Alt 03-07-2007, 14:31   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
hm?
also ich zeig hier mal die FLA. hab alles raus was damit nix zu tun hat.

ich überschreibe doch keine variablen immer wieder. das gotoandplay(1) ist in nem mc drin und nicht auf dem root und nur dazu da damit vintervall nach oben zählt.
Angehängte Dateien
Dateityp: zip v0-30xx.zip (5,0 KB, 3x aufgerufen)

Geändert von Real2k (03-07-2007 um 14:41 Uhr)
Real2k ist offline   Mit Zitat antworten
Alt 03-07-2007, 14:40   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Ja, wenn du im ersten Bild ein stop() stehen hast und deine Variable über einen extra MC hochzählst, dann kann das ja auchnix weden, da die if-Abfrage in keiner Schleife steht.
Also schmeiß den Kram aus dem MC raus und mach das so hier, verdammt :
PHP-Code:
stop();
var 
vtag 1;
var 
vintervall 0;
this.onEnterFrame = function() {
    
vtag Math.ceil(vintervall++/200);
}; 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 03-07-2007, 14:47   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
okay, das funktioniert ja soweit vielen danke, ich weiss ich bin ein schwieriger fall *g*

aber nochmal zum verständnis, was sagt die zeiile genau aus?
PHP-Code:
vtag Math.ceil(vintervall++/200); 
sagt sie aus,dass vtag um 1 erhöht wird, wenn vintervall durch 200 teilbar ist?
oder sagt sie aus dass vtag immer ein 200stel von vintervall ist?
math.ceil ist mir nämlich bisher unbekannt
Real2k ist offline   Mit Zitat antworten
Alt 03-07-2007, 14:52   #11 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Also, Herr "schwieriger Fall":

1. Gibt's auch eine Flashhilfe

2. Math.ceil() rundet das, was in den Klammern steht, auf. Also z.B.:

vtag = Math.ceil(1/200); -> 1
vtag = Math.ceil(150/200); -> 1
vtag = Math.ceil(200/200); -> 1
vtag = Math.ceil(250/200); -> 2
vtag = Math.ceil(401/200); -> 3

usw...

Klar?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 03-07-2007, 15:18   #12 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
jap, klar.

nur hab ich schon wieder ein neues problem *g*

bei dem problem von eben ist es ja so dass es immer durch 200 teilbar ist. also somit immer fest von "vintervall" abhängig.
nurn hab ich allerdings eine ressource (spiel) die immer um 1 erhöht werden soll, wenn "vintervall" eben die werte 100..200..300..usw hat.
die ressource darf natürlich nicht komplett von "vintervall" abhängig sein. da man die ressourcen ja auch ausgibt für gebäude usw.
ich hab dazu die variablen:
vholza = 100 // damit vholzx immer wieder um 100 erhöht wird
vholzx = 100 // für den startwert, wann eben das erste mal um +1 erhöht werden soll

ich hab das so gemacht, dass ich im nachhinein, wenn ich im spiel was ändern will, das ganz einfach machen kann und nicht ewig im code rumsuchen muss wo die intervalle stehen. deshalb eben alle variablen auf einen haufen. wenn ich später z.b. den intervall, wann der spieler holz bekommt ändern möchte, ist das ne rumsucherei.

PHP-Code:
var vintervallvtagvholzavholzxvholz
vtag 
1
vintervall 0;
vholz 0
vholza 100;
vholzx 100;
this.onEnterFrame = function() { 
    
vtag Math.ceil(vintervall++/200);
    if (
vintervall == vholzx) { //diese bedingung wird doch erfüllt sobald vintervall bei 100 ist.
        
vholzx vholzx vholza//allerdings wird das was hier steht nie verändert.
        
vholz vholz 1// und das eben auch nicht.
    
}

sodala. meiner meinung nach sollte das so ablaufen:
vtag geht alle 200 'intervalle' um +1 nach oben. - funktioniert ja auch.
wenn "vintervall" denselben wert wie "vholzx" hat - und das ist ja zuerst im intervall 100 -, dann soll "vholzx" auf 200 springen, und die variable "vholz" um +1 nach oben gehen. Dieser schritt wiederholt sich dann ja beim intervall 200 wieder und bei 300 400 usw wieder und wieder.
also, das sollte er zumindest. tut er aber nicht.
"vholzx" bleibt immer auf 100. "vholz" bleibt auf 0.

Geändert von Real2k (03-07-2007 um 15:25 Uhr)
Real2k ist offline   Mit Zitat antworten
Alt 03-07-2007, 15:28   #13 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Wenn ich das richtig verstehe, könntest du das ebenso über Math.ceil() oder Math.floor() regeln. Außerdem solltest du dir mal Modulo (%) in der Hilfe angucken.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 03-07-2007, 15:33   #14 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
ja aber warum funktioniert dass denn nicht so wie ich das mache, bzw versuche?
ich steh echt total auf dem schlauch. sind doch nur ein paar variablen...

immer, wenn "vintervall" durch hundert teilbar ist, dann soll "vholz" um 1 erhöht werden. das ist alles.

Geändert von Real2k (03-07-2007 um 15:35 Uhr)
Real2k ist offline   Mit Zitat antworten
Alt 03-07-2007, 15:36   #15 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
PHP-Code:
var vintervallvtagvholzavholzxvholz;
vtag 1;
vintervall 0;
vholz 0;
vholza 100;
vholzx 100;
this.onEnterFrame = function() {
    
vtag Math.ceil(vintervall++/200);
    if (
vintervall == vholzx) {
        
trace("if")
        
//diese bedingung wird doch erfüllt sobald vintervall bei 100 ist. 
        
vholzx vholzx+vholza;
        
trace(vholzx)
        
//allerdings wird das was hier steht nie verändert. 
        
vholz vholz+1;
        
// und das eben auch nicht. 
    
}
}; 
Ausgabe:
Code:
if
200
if
300
if
400
if
500
if
600
if
700
...geht doch?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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 18:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele