Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-10-2004, 11:49   #1 (permalink)
poperzen
Gast
 
Beiträge: n/a
_globals funktion lokale variablen

hallo ...

hab mir n schönen preloader gebastelt .. der auf ner funktion basiert ...

möchte nun zusätzlich zum ladebalken noch ne prozentangabe machen ...

textfelt .. mit variable versehen .... aber .. die variablen der funktion sind ja lokal .... naja ... dann dachte ich ich fütter die einfach in eine _globale variable rein aber .. irgendwie scheint das teyxtfeld das nicht zu mögen .. mit trace ... bekomm ich sie raus ...


hilfe ..

danke
  Mit Zitat antworten
Alt 07-10-2004, 12:13   #2 (permalink)
Definitionssache
 
Benutzerbild von dburucu
 
Registriert seit: Apr 2003
Ort: Braunschweig
Beiträge: 2.433
ehm zeich mal etwas Code und so. Was hast du wo reingeschrieben?
dburucu ist offline   Mit Zitat antworten
Alt 07-10-2004, 16:25   #3 (permalink)
poperzen
Gast
 
Beiträge: n/a
function externeFilmeladen (movieclip_str, ebene_num, datei_str)
{

trace(movieclip_str);
trace(ebene_num);
trace(datei_str);
// Container für den externen Film:
_level0.createEmptyMovieClip(movieclip_str, ebene_num);
// Externen Film laden
_level0[movieclip_str].loadMovie(datei_str);
var kbgeladen_num;
var kbgesamt_num;
// Regelmäßiger Funktionsaufruf
var id = setInterval(pruefen, 0,1);
function pruefen() {
// Geladene Bytes, umgewandelt in Kilobyte
kbgesamt_num = Math.round(_level0[movieclip_str].getBytesTotal()/1024);
kbgesamt_str = kbgesamt_num.toString();
kbgeladen_num = Math.round(_level0[movieclip_str].getBytesLoaded()/1024);
kbgeladen_str = kbgeladen_num.toString();
balken_mc._width = Math.round((kbgeladen_num/kbgesamt_num)*516,5);
//ich kack aufn prozent ladestatus!!!!!!
//_global.ladestatus_num = kbgeladen_num;
if (kbgeladen_num>0 && kbgeladen_num == kbgesamt_num) {
clearInterval(id);
//trace(_level0[movieclip_str]);
//trace(_level0[movieclip_str].test_str);
nextFrame();

}

}
}
stop();



das ist der preloader .... die _globale ist auch drin aber halt mit// davor ..
  Mit Zitat antworten
Alt 07-10-2004, 17:23   #4 (permalink)
Definitionssache
 
Benutzerbild von dburucu
 
Registriert seit: Apr 2003
Ort: Braunschweig
Beiträge: 2.433
und welche Variable ist beim Textfeld?
dburucu ist offline   Mit Zitat antworten
Alt 08-10-2004, 20:33   #5 (permalink)
poperzen
Gast
 
Beiträge: n/a
die _global.ladestatus_num
  Mit Zitat antworten
Alt 09-10-2004, 14:36   #6 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Hi,

schau mal…

PHP-Code:
//Actionscript 1.0
var preloader=function(movieclip_strebene_numdatei_str)
    {
    var 
container=_level0.createEmptyMovieClip(movieclip_strebene_num);
    var 
element=container.loadMovie(datei_str);

    
container.onEnterFrame=function()
        {
        
kbgesamt_num Math.round(this.element.getBytesTotal()/1024);
        
kbgesamt_str kbgesamt_num.toString();
        
        
kbgeladen_num Math.round(this.element.getBytesLoaded()/1024);
        
kbgeladen_str kbgeladen_num.toString();
        
        
//Pfadangabe!
        
kbgesamt_textfield.text=kbgesamt_str;
        
kbgeladen_textfield.text=kbgeladen_str;
        
        
//Wo liegt der Balken MC? Pfad eingeben!
        //Was sollen die *516.5 bewirken (_width anpassen?)…  Übrigens . statt ,
        
balken_mc._width Math.round((kbgeladen_num/kbgesamt_num)*516.5);

        if (
kbgeladen_num>&& kbgeladen_num == kbgesamt_num
            {
            
delete this.onEnterFrame;
            
//Pfadangabe!
            
nextFrame();
            }
        }
    }
this.stop(); 
Naja… ich würde das ganze dann so machen …vielleicht nicht immer ganz praktisch auf Prozent usw. zu „kacken“…
PHP-Code:
//Actionscript 1.0
var preloader=function(xyz)
    {
    
//Container erstellen
    
var container=_level0.createEmptyMovieClip(xy);
    
//Container verstecken
    
container._visible=false;
    
//Container ausrichten
    
container._x=0;
    
container._y=0;
    
//Inhalt laden
    
var element=container.loadMovie(z);
    
    
//Container onEnterFrame statt intervaled Function
    
container.onEnterFrame=function()
        {
        
//Gesamtgröße
        
var total=Math.round(this.element.getBytesTotal()); 
        
//Geladen
        
var current=Math.round(this.element.getBytesLoaded());
        
//Prozentberechnung für _xscale
        
var percent=Math.round((current/total)*100);
        
        
//Textfeldzuweisung von „Geladen“
        
_level0.preloader.current.text=(current/1024)+'kb';
        
//Textfeldzuweisung von „Gesamtgröße“
        
_level0.preloader.total.text=(total/1024)+'kb';
        
//optional Textfeldzuweisung von „Prozent“
        
_level0.preloader.percent.text=percent;
        
//Skalierung des Balken mittels _xscale und Prozentwert
        
_level0.scaledMC._xscale=percent;

        if (
percent>&& current>=total
            {
            
//Container anzeigen, da alles geladen
            
container._visible=true;
            
//Container Handler löschen
            
delete this.onEnterFrame;
            
//geladenen Film starten
            
element.play();
            }
        }
    }
this.stop(); 

Bitte BBCode Tages für Scripts verwenden…


Yves
  Mit Zitat antworten
Alt 09-10-2004, 14:48   #7 (permalink)
poperzen
Gast
 
Beiträge: n/a
Hey, vielen vielen Dank!

Das sei mal wirklich recht gefuchst geschrieben.

Echt vielen Dank!


Aber dennoch, kann man sagen, woran das nun bei mir lag, dass das nicht ging? Nehmen die dynamischen Textfelder keine _globalen ?

Naja bis dahin vielen dank
  Mit Zitat antworten
Alt 09-10-2004, 15:13   #8 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Zitat:
Zitat von poperzen
Hey, vielen vielen Dank!

Das sei mal wirklich recht gefuchst geschrieben.

Echt vielen Dank!
Willse meine Kontonummer

Zitat:
Zitat von poperzen
Aber dennoch, kann man sagen, woran das nun bei mir lag, dass das nicht ging? Nehmen die dynamischen Textfelder keine _globalen ?
Naja… du kannst nicht in das Textfeld im Propertymanager Variable mit _global.varname definieren… das musst du dann schon per Script machen…

PHP-Code:
textfeldinstanz.text=_global.varname
Also nicht einfach dyn. Textmoped auf die Bühne scheppern und dann in den Poperzeninspektor ins Varfeld 'ne global reinschreiben.

As far as i know nehmen Textfelder nur Variablen aus ihrer Zeitleiste an…

Du müsstest dann an den MC, in dem das dyn. Textfeld ist, als workaround sowas drandängeln…

PHP-Code:
//Actionscript 1.0
onClipEvent(enterFrame)
  {
  
this.textvar=_global.varname;
   } 
So rein inutitiv in meinem jugendlichen Wahn behauptet… aber lass lieber…

Ich mach das ansonsten mit MCs, wenn diese Textfelder enthalten und ich diese mit Vars füllen will so…

1. MC erstellen
2. dyn Textfeld rein, im Propertyinspector Varname name eingeben
3. Rechte Maus in der Library auf den MC, Component Definitons, name:name, default leer lassen, Typ stringtanga

Und dann, wenn der MC attached wird, vorzugsweise bezugnehmen auf einen Datensatz aus MySQL, den PHP netterweise ins LoadVars reicht…

PHP-Code:
//Actionscript 1.0
for(var i=0;i<this.repeats;i++)
                {
                var 
element=container.attachMovie('MC','MC'+i,i+1);
                
element.name=this['name_'+i];
                
element._x=base_x;
                
element._y=base_y+(i*20);
                } 
Dann haut er dir zb 20 mal untereinander diesen MC auf die Bühne und gibt jeder Instanz als Eigenschaft NAME den Wert aus dem LoadVars mit. Und das Textfeld in der Instanz saugt sich dann den Namen.

Als Beispiel mal folgendes…

Du willst die Zahlen 0,1,2,3,4,5,6,7,8,9 untereinander haben…
PHP-Code:
//Actionscript 1.0
for(var i=0;i<=9;i++)
                {
                var 
element=container.attachMovie('MC','MC'+i,i+1);
                
element.name=i;
                
element._x=base_x;
                
element._y=base_y+(i*20);
                } 
Du hast dann da die Clips mit den Zahlen direkt vorliegen…
Wenn du nun die Nameneigenschaft zum bessere Verständnis dir anzeigen lassen willst…

PHP-Code:
//Actionscript 1.0
for(var i=0;i<=9;i++)
                {
                var 
element=container.attachMovie('MC','MC'+i,i+1);
                
element.name=i;
                
element._x=base_x;
                
element._y=base_y+(i*20);
                            
element.onRelease=function()
                                {
                                 
trace(this.name);
                                {
                } 

Got the idea?


Yves

Geändert von 409coffeemaker (09-10-2004 um 15:15 Uhr)
  Mit Zitat antworten
Alt 09-10-2004, 15:16   #9 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Ich glaub, für meine Witzekanone brauch ich langsam mal n Waffenschein

Yves
  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 23:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele