Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-10-2009, 17:36   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Beiträge: 96
solange wie etwas ist, tue dies

Hallo,

ich programmiere gerade an einer Wirtschaftssimulation und habe sowas wie einen Aktienkurs der den Goldpreis der letzten 30 Tage anzeigt.
Funzt soweit auch alles ganz gut.
für den Graphen ist eine 45 Pixel hohe Zone vorgesehen.
Der Kurs kann binnen 30 Tagen auch nicht so stark ansteigen, dass mehr als 45 Pixel benötigt werden.
Aber an und für sich kann er natürlich weit höher steigen. Und das tut er auch.

Mein Vorhaben:
Erreicht mindestens einer der 30 Punkte (Jeder Tageswert hat einen punkt) eine höhe, die größer als dieser wert (also _y=45 Pixel) ist, dann sollen einfach alle 30 punkte um 10 Pixel nach unten verschoben werden und somit bleibt der Graph in der für ihn vorgesehenen 'zone'.

Und genau dies geht bei mir nur ein einziges mal. Ich hab dies auch mit einer While funktion versucht, aber da reagiert das script nicht mehr und nach den 10sec kommt ein Fehler.

PHP-Code:
function goldpreisGrafikAnzeigen() {
    
goldpreisgrafikskalieren 0;
    for (
i=0i<30i++) {
        
_root.MC_goldkursgrafik["goldkurstag"+i]._y = (-1)*(goldpreisentwicklungArray[i]/10);
        
trace(_root.MC_goldkursgrafik["goldkurstag"+i]._y);
        if (
_root.MC_goldkursgrafik["goldkurstag"+i]._y<-45) {
            
goldpreisgrafikskalieren 1;
        }
    }
    if (
goldpreisgrafikskalieren == 1) { // schreibe ich hier anstelle des IF ein WHILE kommt der Absturz.
//Bei IF durchläuft das ganze ja nur 1 mal. Und ist der Kurs dann gesamt über 550 (entspricht 55 px) dann verlässt der Graph seine 'zone'
        
for (i=0i<30i++) {
            
_root.MC_goldkursgrafik["goldkurstag"+i]._y _root.MC_goldkursgrafik["goldkurstag"+i]._y+10;
        }
        if (
_root.MC_goldkursgrafik["goldkurstag"+i]._y>-45) {
            
goldpreisgrafikskalieren 0;
        }
    }

Ich hoffe ihr blickt durch und habt eine Ahnung, wie ich das machen kann, oder ihr könnt mir sagen, warum die WHILE schleife einen absturz verursacht.


Gruß
k-nuddel
k-nuddel ist offline   Mit Zitat antworten
Alt 09-10-2009, 17:52   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
zuerst wird dein script ausgeführt, dann kommt flash drann,
dann wird dein script ausgeführt, dann kommt flash drann,
dann wird dein script ausgeführt, dann kommt flash drann, ...

du musst auch mal flash was machen lassen, sonst mäckert es.

schau dir in der flash-hilfe einmal das da an:

onEnterFrame
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 09-10-2009, 18:26   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Beiträge: 96
die flashhilfe versteh ich da nicht

wo soll ich dieses onEnter frame reinpacken? direkt ins _root?
_root.onEnterFrame ?

bei mir dreht sichs ja nur um eine einzelne funktion die immer wieder mal aufgerufen wird..

und nur, wenn die funktion aufgerufen wird, dann soll ja diese "skalierung" oder wie mans nennen mag, stattfinden..

gehen WHILE schleifen in flash nicht? oder was mach ich falsch?
oder kann mir jemand zeigen wie ich das mit dem onEnterFrame realisieren muss?

Gruß

k-nuddel
k-nuddel ist offline   Mit Zitat antworten
Alt 09-10-2009, 18:35   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
ein elementares beispiel für flash:
ein grafik-objekt in form eines movieclips bekommt eine onEnterFrame-function.
bei einer framerate von z.b. 25 wird diese function 25 mal pro sekunde aufgerufen und dadurch das object jedesmal um einen punkt in die x-richtung bewegt.
Code:
deinMovieClip.onEnterFrame() {
  this._x+=1;
}
sinngemäss kannst du deine grafik verändern.

selbstverständlich kann flash auch while. aber wann bitteschön soll flash die grafik erneuern, wenn du endlos in einer while-schleife rumwerkelst?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (09-10-2009 um 18:37 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 09-10-2009, 18:43   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Beiträge: 96
wieso erneuern?
flash soll die 30 MCs doch nur so oft immer wieder um 10 pixel nach unten verschieben, solange mindestens 1 MC zu weit oben positioniert ist.

mehr ist es doch nicht. aber die WHILE hängt sich auf
k-nuddel ist offline   Mit Zitat antworten
Alt 09-10-2009, 19:25   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
wenn du
while (goldpreisgrafikskalieren == 1) {
schreibst (? so hattest du das?)

dann läuft das ewig
weil so niemals flash drann kommt und sich so niemals ..._y verändern kann und sich deshalb auch kein goldpreisgrafikskalieren ändern kann.


p.s.
probiere auch mal den debugger, damit kann man ein script schrittweise abarbeiten und die variablen life ansehen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 09-10-2009, 20:22   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Beiträge: 96
PHP-Code:
function goldpreisGrafikAnzeigen() {
    
goldpreisgrafikskalieren 0;
    for (
i=0i<30i++) {
        
_root.MC_goldkursgrafik["goldkurstag"+i]._y = (-1)*(goldpreisentwicklungArray[i]/10);
        
//trace(_root.MC_goldkursgrafik["goldkurstag"+i]._y);
        
if (_root.MC_goldkursgrafik["goldkurstag"+i]._y<-45) {
            
goldpreisgrafikskalieren 1;
        }
    }
    while (
goldpreisgrafikskalieren == 1) {
        for (
i=0i<30i++) {
            
_root.MC_goldkursgrafik["goldkurstag"+i]._y _root.MC_goldkursgrafik["goldkurstag"+i]._y+10;
        }
        for (
i=0i<30i++) {
            if (
_root.MC_goldkursgrafik["goldkurstag"+i]._y>-45) {
                
grafikenskaliert++;
                
trace(grafikenskaliert);
            }
        }
        if(
grafikenskaliert>=30){
            
goldpreisgrafikskalieren 0;
            
grafikenskaliert 0;
            
trace("grafikenskaliert = 0");
        }
    }

so hab ichs nun zum laufen gebracht
k-nuddel 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
Funktion solange wie rollover Herzenslicht Flash 8 7 03-02-2007 16:02
Warteschleife solange Bedingung net gillt dummy2 Flash Einsteiger 10 28-07-2006 08:57
IE braucht zum Laden 2x bis 4x solange wie FF Leo77 Flash MX 2004 3 29-11-2005 14:46
solange button gedrückt memphis1983 Flash MX 2004 2 01-09-2005 08:55
so lange button gedrückt wird, solange soll kontinuirlich etwas ausgeführt werden? silver92 Flash 4 und Flash 5 4 06-09-2002 19:49


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele