Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-08-2003, 19:53   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 58
variablenverfügbarkeit und -typ

hi!

also ich poste das hier einfach, weil ich langsam den überblick verloren habe, bei den ganzen varianten die ich schon probiert habe.

die sache ist wie immer ganz simpel.
ich lade die var FotosMax aus einer textdatei. um sie dann mit der var aktuellesBild zu vergleichen.

mein problem ist, das ich FotosMax als string bekomme, aktuellesBild aber eine zahl ist. wenn ich versuche FotosMax mit number(FotosMax) umzuwandeln geht das schief. zu mindestens passiert nichts.

das ich vor FotosMax immer _level1 schreiben muss macht mich auch stutzig. ich dachte die var wäre auf der timeline verfügbar egal in welche ebene ich sie geladen habe.


AS:
--------------------------------------------------------------

loadMovie("pressefotos/1.jpg", lader);
loadVariablesNum("pressefotos/bildanzahl.txt",1);


var aktuellesBild = 1;


function fotos(){

if (aktuellesBild <= _level1.FotosMax){
aktuellesBild++;
unloadMovie(_root.lader);
loadMovie("pressefotos/"+_root.aktuellesBild+ ".jpg", _root.lader);

trace(typeof(_level1.FotosMax));
trace(typeof(aktuellesBild));

trace(_level1.FotosMax);
trace(aktuellesBild);
} else {
gotoAndStop(2);
}
}

------------------------------------------------

Textdatei:
&FotosMax=5


vielleicht hat einer nen tip für mich.

gruesse
tobau
tobau ist offline   Mit Zitat antworten
Alt 23-08-2003, 20:29   #2 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
die var FotosMax ist beim aufruf der function fotos() noch nicht geladen.
versuchs mal so (mit loadVars). der rest ist ungestestet:
ActionScript:
  1. loadMovie("pressefotos/1.jpg", lader);
  2. getPics = new LoadVars();
  3. getPics.load("pressefotos/bildanzahl.txt");
  4. getPics.onLoad = fotos();
  5. var aktuellesBild = 1;
  6. function fotos() {
  7.     if (aktuellesBild<=this.FotosMax) {
  8.         aktuellesBild++;
  9.         unloadMovie(_root.lader);
  10.         loadMovie("pressefotos/"+_root.aktuellesBild+".jpg", _root.lader);
  11.         trace(typeof (_level1.FotosMax));
  12.         trace(typeof (aktuellesBild));
  13.         trace(this.FotosMax);
  14.         trace(aktuellesBild);
  15.     } else {
  16.         gotoAndStop(2);
  17.     }
  18. }

Geändert von thorben.schmitt (23-08-2003 um 20:30 Uhr)
thorben.schmitt ist offline   Mit Zitat antworten
Alt 23-08-2003, 20:31   #3 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
So sollte es gehen :
ActionScript:
  1. loadMovie("pressefotos/1.jpg",_root.lader);
  2.  loadVariablesNum("pressefotos/bildanzahl.txt",1);
  3. //als Beispiel werden als max mal 10 genommen
  4.  FotosMax = 10;
  5. _root.aktuellesBild = 1;
  6.  function fotos(){
  7.  
  8.  if (aktuellesBild <= FotosMax){
  9.      aktuellesBild++;
  10.      unloadMovie(_root.lader);
  11.       loadMovie("pressefotos/"+_root.aktuellesBild+ ".jpg", _root.lader);
  12.  
  13.          } else {
  14.                  gotoAndStop(2);
  15.          }
  16.  }
MacEvil ist offline   Mit Zitat antworten
Alt 23-08-2003, 21:04   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 58
ich danke euch


@thorben84
doch die var MaxFotos ist da, sonst würde mit beim aufrufen der function das trace(typeof(_level1.FotosMax)); nicht sagen das es sich um einen string handelt. oder?

@MacEvil
ähm, die var FotosMax soll eigentlich aus der txt datei kommen.
siehe loadVariablesNum("pressefotos/bildanzahl.txt",1);

mit dem inhalt: Textdatei:
&FotosMax=5

oder hab ich da was falsch verstanden?
tobau ist offline   Mit Zitat antworten
Alt 23-08-2003, 21:08   #5 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
@ tobau :
Ne Sorry,ist mein Fehler hab das übersehen
dann so :
ActionScript:
  1. loadMovie("pressefotos/1.jpg",_root.lader);
  2. loadVariablesNum("pressefotos/bildanzahl.txt",1);
  3. _root.aktuellesBild = 1;
  4. function fotos(){
  5. if (aktuellesBild <= FotosMax){
  6.                 _root.aktuellesBild++;
  7.                 unloadMovie(_root.lader);
  8.                 loadMovie("pressefotos/"+_root.aktuellesBild+ ".jpg", _root.lader);
  9.                
  10.         } else {
  11.                 gotoAndStop(2);
  12.         }
  13. }
  14. fotos();
MacEvil ist offline   Mit Zitat antworten
Alt 23-08-2003, 22:08   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 58
nee das geht alles nicht. das hauptproblem ist, das wenn ich die var aus der textdatei da ist, sie ein string ist. nur leiderfunktioniert das wandeln mit number nicht.


if (aktuellesBild <= number(_level1.FotosMax))

gruesse
tobau
tobau ist offline   Mit Zitat antworten
Alt 23-08-2003, 22:16   #7 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
ActionScript:
  1. a="123";
  2. b=123;
  3. c=Number(a);
  4. trace(typeof a);
  5. trace(typeof b);
  6. trace(typeof c);


noch fragen ?

ausserdem sollte der interpreter den string automatisch konvertieren

teste mal folgendes

ActionScript:
  1. a="500";
  2. b=400;
  3. a<b ? trace("kleiner") : trace("grösser");

die variable a wird vom string automatisch zur nuber konvertiert
__________________
hang loose

Geändert von Majo (23-08-2003 um 22:22 Uhr)
Majo ist offline   Mit Zitat antworten
Alt 23-08-2003, 22:32   #8 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 58
danke dir

ich stimme dir voll und ganz zu, nur funktioniert es in meinem fall nicht. sprich die geladene var mit wert 5, wird bei mir als string ausgegeben und nicht als number. also irgendwie doch ncht automatisch umgewandelt.

mehr als
&FotosMax=5

kann ich ja nicht in die txt schreiben.
muss die irgendie utf-8 abgespeichert sein?

gruesse
tobau

Geändert von tobau (23-08-2003 um 22:37 Uhr)
tobau ist offline   Mit Zitat antworten
Alt 23-08-2003, 22:37   #9 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
das hast du nicht ganz richtig verstanden
ActionScript:
  1. a="500";
  2. b=400;
  3. a<b ? trace("kleiner") : trace("grösser");
  4. trace(typeof a);//a bleibt trotzdem ein string...nur die if-anweisung verlangt einen numerischen wert,
  5. //deshalb wandelt der interpreter in number um...aber eben nur für diese operation
  6.  
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 23-08-2003, 22:52   #10 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 58
hmm, nicht so einfach
ich zweifle gerade an mir.

nach deiner aussage müsste in dieser funktion:

ActionScript:
  1. function fotos(){       
  2.  if (aktuellesBild <= _level1.FotosMax){                 
  3. aktuellesBild++;                         
  4. trace(typeof(_level1.FotosMax));
  5. loadMovie("pressefotos/"+_root.aktuellesBild+ ".jpg", _root.lader);                           
  6. } else {                 
  7. nextBtn.gotoAndStop(2);         
  8.  } 
  9. }


das trace(typeof(_level1.FotosMax)); number auspucken. richtig?
macht es aber nicht, es gibt string aus.

Geändert von tobau (23-08-2003 um 22:54 Uhr)
tobau ist offline   Mit Zitat antworten
Alt 23-08-2003, 23:00   #11 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
probier doch einfach
ActionScript:
  1. trace(_level1.FotosMax+1); // sollte 6 ergeben und nicht 51!
  2.  
thorben.schmitt ist offline   Mit Zitat antworten
Alt 23-08-2003, 23:06   #12 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 58
gibt 5 aus.

kann ja rein theoretisch auch nicht 6 sein, wenn mir die var als string ausgegeben wird.
tobau ist offline   Mit Zitat antworten
Alt 23-08-2003, 23:36   #13 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
versuch mal folgendes:
ActionScript:
  1. _root.lader.loadMovie("pressefotos/1.jpg");
  2. var aktuellesBild = 11;
  3. getPics = new LoadVars();
  4. getPics.load("pressefotos/bildanzahl.txt");
  5. getPics.onLoad = function(ok){
  6.     if(ok){
  7.                 trace("maxwert = "+this.FotosMax);   
  8.         if (_root.aktuellesBild<=this.FotosMax) {
  9.                 _root.aktuellesBild++;
  10.                 unloadMovie(_root.lader);
  11.                 _root.lader.loadMovie("pressefotos/"+_root.aktuellesBild+".jpg");
  12.         }else trace("ich bin eine meldung und erscheine nur, wenn FotosMax überschritten wird");
  13.     }
  14. };

bei mir klappt das
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 23-08-2003, 23:42   #14 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
Zitat:
Geschrieben von tobau
gibt 5 aus.

kann ja rein theoretisch auch nicht 6 sein, wenn mir die var als string ausgegeben wird.
habe in diese richtung gedacht:
ActionScript:
  1. num = 5;
  2. str = "5";
  3. trace(num+1); // = 6
  4. trace(str+1);// = 51
  5.  

Geändert von thorben.schmitt (23-08-2003 um 23:44 Uhr)
thorben.schmitt ist offline   Mit Zitat antworten
Alt 24-08-2003, 00:02   #15 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 58
ich hab echt nen hänger.

ich hab das mal so geschrieben das die function via button ausführbar ist.

ActionScript:
  1. _root.lader.loadMovie("pressefotos/1.jpg")
  2. var aktuellesBild = 1;   
  3.  
  4. getPics = new LoadVars()
  5. getPics.load("pressefotos/bildanzahl.txt");   
  6. getPics.onLoad = trace("alles da")
  7. trace(typeof(this.FotosMax));   
  8.  
  9. function Fotos(){                 
  10. if (_root.aktuellesBild<=this.FotosMax) {
  11. _root.aktuellesBild++;
  12. unloadMovie(_root.lader);
  13. _root.lader.loadMovie("pressefotos/"+_root.aktuellesBild+".jpg");
  14.  }else trace("ich bin eine meldung und erscheine nur, wenn FotosMax überschritten wird");         
  15. }


jetzt gibt das trace(typeof(this.FotosMax));
nen undefined aus.

gruesse
tobau
tobau 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 10:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele