Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-06-2004, 16:59   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Ort: Austria/Vienna
Beiträge: 225
Brauche Hilfe beim Füllen eines Behälters

Also Folgendes:
Ich hab
einen Behälter,den ich füllen möchte --> fillGlas()
und einen Schieberegler, der die Durchflussmenge steuert.
Nun hab ich zB: 1000 ml/sek als meine maximale Durchflussmenge. Wenn ich jetzt den Regler ganz nach oben gebe (90px entspricht 100% der maximalen Durchflussmenge), dann müßte es 10 sek dauern, bis der Behälter voll ist.
Hier dauert es aber nur 4 sekunden und wenn ich den Regler zwischendurch nach unten bewege, dann wird auch der Inhalt weniger.

Und das soll ja nicht sein, sondern so:
Regler nach oben, Behälter läuft schneller voll
Regler nach unten, Behälter läuft langsamer voll


PHP-Code:
MovieClip.prototype.fillGlas = function(lever) {
    
this.lever lever;
    var 
amount;
    
//Schieberegler geht nur bis 90, hier wird der factor für das 
    //umrechnen auf 100% gesetzt
    
var factor1 100 90;
    
//Inhlat des Behälters in ml
    
INHALT 10000;
    
//Durchflussmenge max in ml: 1000 ml/sek
    
FILL_MAX 1000;
    
startTime getTimer();
    
this.onEnterFrame = function() {
        
//wenn das Wasser läuft
        
if (_root.waterIsOn) {
            
sek = (getTimer() - startTime) / 1000;
            
//errechnet die Durchflussmenge im Verhältnis
            //zur mximalen, je nach stellung des Reglers
            
pro Math.round(-_root.clip.slide._y factor1);
            
fill Math.round(FILL_MAX pro 100);
            
//füllt den Behälter
            //UND DAS HAUT NICHT HIN
            
drinn += fill sek;
            if (
drinn >= INHALT 1000) {
                
delete this.onEnterFrame;
                
trace("übergegangen");
            }
        }
    };
};
clip.onPress = function() {
    
_root.waterIsOn true;
    
this.slide.startDrag(true0, -9000);
};
clip.onRelease = function() {
    
_root.waterIsOn false;
    
this.slide.stopDrag();
};
_root.fillGlas(); 
Wäre schön wenn mir jemand helfen kann.

lg TF
Angehängte Dateien
Dateityp: zip fillGlas.zip (3,0 KB, 11x aufgerufen)

Geändert von TigerFox (08-06-2004 um 17:02 Uhr)
TigerFox ist offline   Mit Zitat antworten
Alt 08-06-2004, 19:41   #2 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Keine Ahnung ob ich Dir helfen kann!!
Zwei Dinge sind mir allerdings aufgefallen!!
PHP-Code:
MovieClip.prototype.fillGlas = function(lever) {
    
this.lever lever;
    var 
amount;
    var 
factor1 100/90;
    
INHALT 10000;
    
FILL_MAX 1000;
    
_global.startTime;//hier
    
this.onEnterFrame = function() {
        if (
_root.waterIsOn) {
            
sek = (getTimer()-startTime)/1000;
            
pro Math.round(-_root.clip.slide._y*factor1);
            
fill Math.round((FILL_MAX*pro)/100);//hier
            
drinn += fill*sek;
            if (
drinn>=INHALT*1000) {
                
delete this.onEnterFrame;
                
trace("übergegangen");
            }
        }
    };
};
clip.onPress = function() {
    
_global.startTime getTimer();//hier, ich würd die starttime erst hier auslösen
    
_root.waterIsOn true;
    
this.slide.startDrag(true0, -9000);
};
clip.onRelease = function() {
    
_root.waterIsOn false;
    
this.slide.stopDrag();
};
_root.fillGlas(); 
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 08-06-2004, 19:49   #3 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
Zitat:
Zitat von TigerFox
... wenn ich den Regler zwischendurch nach unten bewege, dann wird auch der Inhalt weniger...
Also bei mir wird da nix weniger, wenn ich den Regler nach unten bewege


Hi rusty
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 08-06-2004, 19:53   #4 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Hi _geo_
Mit den kleinen änderungen von mir rattern die zahlen schon langsammer, wenn man den Button runterzieht!!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 09-06-2004, 10:18   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Ort: Austria/Vienna
Beiträge: 225
Danke für eure Mühen, es aber leider immer noch nicht.
Seid doch so nett und probiert es noch mal aus.
Ändert bitte diese Zeile so
PHP-Code:
pro Math.round(90factor1); 
Bei dieser Einstellung läuft es mit der maximalen Durchflussgeschw. von 1000 ml/sek, dh. nach Adam Riese sollte es dann 10 sek dauern bis der Behälter mit Inhalt 10000 ml voll ist. Es dauert aber nur ca. 3.1 sek

Wo liegt der Hund begraben, bin schon gespannt!

Danke nochmals
TF
TigerFox ist offline   Mit Zitat antworten
Alt 09-06-2004, 11:42   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2001
Ort: Austria/Vienna
Beiträge: 225
habs rausgekriegt.
Man darf das ganze natürlich nicht mit sek rechnen, sondern mit der framerate.
Falls es euch interessiert
PHP-Code:
//framerate
fps 18;
drinn += Math.round((fill fps)); 

danke trotzdem nochmals
TF
TigerFox 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 21:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele