Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-11-2005, 17:16   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Ort: AUSTRIA (NÖ)
Beiträge: 10
Question dyn. wachsende balken

hy!

hab ein kleines animationsproblem.

für ein dynamisches balkendiagramms sollen aus textdateien werte geladen werden. diese werte steuern die größe der balken.

jetzt hab ich aber das problem dass alle balken gleich schnell zu wachsen beginnen sollen und erst am ende sich der "gewinner" herausstellen soll.

mein code zur zeit war:

Code:
onEnterFrame = function () { 
    for (i=1; i<8; i++) {
        var distx = lv['var'+i]*100-this['bar'+i]._xscale;
        var movex = distx/5;
        this['bar'+i]._xscale += movex;
        }
    };

lv['var']+i ist der wert aus dem textfile!
ich bin am anfang davon ausgegangen dass das gesamte 100% ergibt, dem ist auch so.

kann mir jemand weiterhelfen?

Geändert von burna (11-11-2005 um 17:18 Uhr)
burna ist offline   Mit Zitat antworten
Alt 11-11-2005, 17:25   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hi und willkommen!
Dann muss aber das Easing raus. So in etwa:
PHP-Code:
for (i=1i<8i++) {
    
this['bar'+i].distx lv['var'+i];
    
this['bar'+i]._xscale 0;
    
this['bar'+i].onEnterFrame = function() {
        if (
this._xscale<this.distx) {
            
this['bar'+i]._xscale += 1;
        } else {
            
delete this.onEnterFrame;
        }
    };

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-11-2005, 17:47   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Ort: AUSTRIA (NÖ)
Beiträge: 10
hmmm

hy!

danke erstmal für die schnelle antwort und die nette begrüßung.

irgendwas hackt da aber gröberst.

ich hab mir jetzt mal deine überarbeitung angesehen, hab das jetzt wie folgt:
(zur erklärung, action ist auf einem button im onRelease-Teil)

onEnterFrame = function () {
for (i=1; i<8; i++) {
this['bar'+i].distx = lv['var'+i];
this['bar'+i]._xscale = 0;
this['bar'+i].onEnterFrame = function() {
if (this._xscale<this.distx) {
this['bar'+i]._xscale += 1;
} else {
delete this.onEnterFrame;
}
};

}
};

der macht jetzt rein gar nix mit den balken...
hab ich nen denkfehler???

Geändert von burna (11-11-2005 um 17:51 Uhr)
burna ist offline   Mit Zitat antworten
Alt 11-11-2005, 17:52   #4 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
hab dir mal schnell ein bsp file gemacht ;-)

mfg geo
Angehängte Dateien
Dateityp: zip balken_diagram.zip (2,3 KB, 18x aufgerufen)
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 11-11-2005, 18:59   #5 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
gerade sowas einfaches kann man in zehn sekunden bauen, wenn du die balken nicht animierst sondern gleich in originalgröße darstellst und sie durch eine animierte maske einblendest.

aber das wäre natürlich viel zu einfach *lol*
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 12-11-2005, 12:23   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Ort: AUSTRIA (NÖ)
Beiträge: 10
Question txt-file

hy geo!

vielen dank für dein file! hat mir sehr weitergeholfen!
das ist genau das was ich meine!

hab nur ein problem dabei. bin relativ neu in laden von externen dateien bzw. übergeben von variablen an flash.

du hast ja in deinem zip die variablen einfach aufgelistet.
Code:
var1 = 12;
var2 = 17;
var3 = 2;
var4 = 27;
var5 = 9;
ich mach da eine lv = new LoadVars();
das problem das ich aber habe, ich bekomme die balken net zu wachsen da er die werte anscheinend nicht kennt ausserhalb nicht mehr den balken zuweisen kann?!?!

Code:
lv = new LoadVars(); 
lv.onLoad = function(sucess){ 
    if (sucess){
        for (i=1; i<8; i++) {
        trace(this['var'+i]); 
		}
    }else{
        trace('FEHLER BEIM LADEN!'); 
    } 
} 

lv.load('vars.txt');
ich seh schon den wald vor lauter bäumen nicht mehr.....
hilfe!
burna ist offline   Mit Zitat antworten
Alt 12-11-2005, 12:40   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hi!
Liegt wahrscheinlich am Timing:
PHP-Code:
stop();
//
lv = new LoadVars();
lv.onLoad = function(success) {
    if (
success) {
        
balken();
    } else {
        
trace('FEHLER BEIM LADEN!');
    }
};
//
lv.load('vars.txt');
//
function balken() {
    for (
i=1i<8i++) {
        
this['bar'+i].distx lv['var'+i];
        
this['bar'+i]._xscale 0;
        
this['bar'+i].onEnterFrame = function() {
            if (
this._xscale<this.distx) {
                
this._xscale += 1;
            } else {
                
delete this.onEnterFrame;
            }
        };
    }

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 14-11-2005, 16:27   #8 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Ort: AUSTRIA (NÖ)
Beiträge: 10
Question onEnterFrame

hy frager!

danke für deine hilfestellung. habs zwar so gehabt, nur hat da irgendwas anderes gehakt, funktioniert jetzt!

ein problem hab ich jedenfalls noch immer:
ich hab bei meinen fla-file ne callback funktion, dass die werte alle 10 sekunden aus der text-datei erneut lädt, das funktioniert jetzt mit der von dir geposteten version nicht mehr da ich ja die funktion balken(); auf nen handler setzen muss (onRelease), oder? korrigiere mich wenn das nicht stimmt!

bei meinem vorhandenen code hat das funktioniert:
Code:
onEnterFrame = function () { 
    for (i=1; i<8; i++) {
        var distx = lv['var'+i]*100-this['bar'+i]._xscale;
        var movex = distx/5;
        this['bar'+i]._xscale += movex;
        }
    };

neuer code:
Code:
function balken() { 
    for (i=1; i<8; i++) { 
        this['bar'+i].distx = lv['var'+i]; 
        this['bar'+i]._xscale = 0; 
        this['bar'+i].onEnterFrame = function() { 
            if (this._xscale<this.distx) { 
                this._xscale += 1; 
            } else { 
                delete this.onEnterFrame; 
            } 
        }; 
    } 
}
ausserdem gebe ich noch die werte in einem dyn. textfeld pre as aus.
funktioniert das eigentlich, dass ich die werte etwa nach ca. 5 sekunden einblenden lasse?

lg,
bernard
burna 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 07:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele