Anzeige

Problem mit LoadVars & textdatei

Problem mit LoadVars & textdatei | PSD-Tutorials.de

Erstellt von bifi, 25.11.2007.

  1. bifi

    bifi Aktives Mitglied

    Dabei seit:
    29.10.2004
    Beiträge:
    1.144
    Geschlecht:
    männlich
    Ort:
    Mainz
    Software:
    C4D / PS
    Kameratyp:
    Canon EOS 400D
    Problem mit LoadVars & textdatei
    Huhu :)

    Ich hab das Tutorials von bad2be zur erstellung einer galerie gemacht und alles hat schön geklappt.

    jetzt wollte ich aber noch, das der "titel" des bildes das geladen wird auch noch da steht.

    hab mir dann ein weiteres tutorial über LoadVars reingezogen, allerdings hängts da jezt ein wenig...

    hier erstmal der code, dann meine Vermutung xD

    Code (Text):
    1. MovieClip.prototype.galleriebutton = function(namen) {
    2.     // einladen des Entsprechenden Bildes in den Buttoncontainer
    3.     this.cont.loadMovie('klein/'+namen+'.jpg', 1);
    4.     // was soll passieren wenn man auf den Button klickt?
    5.     this.onRelease = function() {
    6.         //einladden des grossen Bildes in das Anzeigefenster
    7.         rahmen.cont.loadMovie('gross/'+namen+'.jpg');
    8.     trace(namen);
    9.     };
    10. };
    11. //Einladen des Textfiles
    12. bilder = new LoadVars();
    13. bilder.load('bilder.txt');
    14. bilder.onLoad = function(ok) {
    15.     if (ok) {
    16.         //splitten der eingeladenen Daten anhand der senkrechten Striche und einladen in das Array allpix
    17.         allpix = bilder['pix'].split('|||');
    18.         // Aufruf der Methode buttonaufbau
    19.         buttonaufbau(allpix);
    20.     } else {
    21.         trace('konnte Bilderliste nicht laden');
    22.     }
    23. };
    24. // auslesen der Bilder aus dem Array das aus unserm Textfile geworden ist
    25. function buttonaufbau(pix) {
    26.     for (i=0; i<pix.length; i++) {
    27.         cont.attachMovie('Button', 'Button'+i, i, this);
    28.         this.clip = eval('cont.Button'+i);
    29.         this.clip._y = (+this.clip._height)*i;
    30.         this.clip._x = (-this.clip._widht);
    31.         this.clip.galleriebutton(pix[i]);
    32.         rahmen.cont.loadMovie('gross/'+pix[0]+'.jpg');
    33.        
    34.     }
    35. }
    36. versatz = 5;
    37. ab.onRollOver = function() {
    38.     scrollen(-versatz);
    39. };
    40. ab.onRollOut = function() {
    41.     scrollen(0);
    42. };
    43. auf.onRollOver = function() {
    44.     scrollen(+versatz);
    45. };
    46. auf.onRollOut = function() {
    47.     scrollen(0);
    48. };
    49. function scrollen(richtung) {
    50.     this.onEnterFrame = function() {
    51.         if (richtung>0 && cont._y<7) {
    52.             cont._y = cont._y+richtung;
    53.         } else if (richtung<0 && cont._y>20-cont._height+255) {
    54.             cont._y = cont._y+richtung;
    55.         } else if (richtung == 0) {
    56.             delete this.onEnterFrame;
    57.         }
    58.     };
    59. }
    60. var loader:LoadVars = new LoadVars();
    61.  
    62. loader.onLoad = function(test) {
    63.     if(test) {
    64.         Titelfeld.text=this.namen;
    65.     }else {
    66.         Titelfeld.text='Untitled'
    67.     }
    68. };
    69.  
    70. loader.load('titel.txt')
    die wichtigen Stellen sind ganz oben und ganz unten.
    meine Idee war die genaue Textstelle in der textdatei auch über eine Variable zu regeln.
    Dazu hab ich einfach die Variablen in der textdatei genau so genannt wie die der Bilder in deren textdatei.

    Code (Text):
    1. MovieClip.prototype.galleriebutton = function(namen) {
    2.     // einladen des Entsprechenden Bildes in den Buttoncontainer
    3.     this.cont.loadMovie('klein/'+namen+'.jpg', 1);
    4.     // was soll passieren wenn man auf den Button klickt?
    5.     this.onRelease = function() {
    6.         //einladden des grossen Bildes in das Anzeigefenster
    7.         rahmen.cont.loadMovie('gross/'+namen+'.jpg');
    8.     trace(namen);
    9.     };
    10. };
    11.  
    die Variablen namen müssten also in der variable "namen" gespeichert sein, was sich durch das trace(namen); bestätigen lässt.

    dann hab ich einfach statt der genauen zu ladenden Variable die variable namen in folgendes codestück eingesetzt:

    Code (Text):
    1. var loader:LoadVars = new LoadVars();
    2.  
    3. loader.onLoad = function(test) {
    4.     if(test) {
    5.         Titelfeld.text=this.namen;
    6.     }else {
    7.         Titelfeld.text='Untitled'
    8.     }
    9. };
    10.  
    11. loader.load('titel.txt')
    sollte rein theoretisch doch wohl klappen, tuts aber nicht.
    in meinem textfeld erscheint nur "undefined", also wurde garnichts geladen.

    aus Java zeiten kenne ich noch sowas wie locale und Globale Variablen, und vermute deshalb "namen" als eine locale, da man ja shcließlich nicht außerhalb der funktion darauf zugreifen kann.

    Meine frage ist nun, wie ich trotzdem mit den werten aus"namen" außerhalb der funktion arbeiten kann.
    gibt es da überhaupt eine Möglichkeit oder würdet ihr das sowieso ganz anders machen ?

    hoffe ich hab mich verständlich gemacht und ihr könnt mir helfen.

    Gruß Bifi
     
    #1      
  2. bad2be

    bad2be Aktives Mitglied

    Dabei seit:
    14.12.2005
    Beiträge:
    641
    Geschlecht:
    männlich
    Ort:
    Ludwigshafen am Rhein
    Problem mit LoadVars & textdatei
    AW: Problem mit LoadVars & textdatei

    Grüss Dich
    Entschuldige die späte Antwort, ich hab grad brutalst viel umdie Ohren.
    Also, Ich sehe, Du möchtest Die Titel in einem seperaten Textfile speichern.
    Diesen liest Du schon richtig aus, must ihn aber noch aufbereiten. Aussehen sollte der Textfile wie folgt:
    ?Titel=titel1|||titel2|||titel3?
    Die Titel schreiben wir in ein Array und lassen dann je nach Aktion das Array an der entspr. Position auslesen.
    Ich habe nur Deine onLoad geändert und in meinem Aufruf des Protos noch eine Nummer (i) übergeben. Diese empfange ich als "n". Der Code sollte dann in etwa so aussehn:
    Code (Text):
    1. MovieClip.prototype.galleriebutton = function(namen,n) {
    2.     // einladen des Entsprechenden Bildes in den Buttoncontainer
    3.     this.cont.loadMovie('klein/'+namen+'.jpg', 1);
    4.     // was soll passieren wenn man auf den Button klickt?
    5.     this.onRelease = function() {
    6.         //einladden des grossen Bildes in das Anzeigefenster
    7.         rahmen.cont.loadMovie('gross/'+namen+'.jpg');
    8.         trace(namen);
    9.         Titelfeld.text=titel[n]
    10.     };
    11. };
    12. //Einladen des Textfiles
    13. bilder = new LoadVars();
    14. bilder.load('bilder.txt');
    15. bilder.onLoad = function(ok) {
    16.     if (ok) {
    17.         //splitten der eingeladenen Daten anhand der senkrechten Striche und einladen in das Array allpix
    18.         allpix = bilder['pix'].split('|||');
    19.         // Aufruf der Methode buttonaufbau
    20.         buttonaufbau(allpix);
    21.     } else {
    22.         trace('konnte Bilderliste nicht laden');
    23.     }
    24. };
    25. // auslesen der Bilder aus dem Array das aus unserm Textfile geworden ist
    26. function buttonaufbau(pix) {
    27.     for (i=0; i<pix.length; i++) {
    28.         cont.attachMovie('Button', 'Button'+i, i, this);
    29.         this.clip = eval('cont.Button'+i);
    30.         this.clip._y = (+this.clip._height)*i;
    31.         this.clip._x = (-this.clip._widht);
    32.         this.clip.galleriebutton(pix[i],i);
    33.         rahmen.cont.loadMovie('gross/'+pix[0]+'.jpg');
    34.     }
    35. }
    36. versatz = 5;
    37. ab.onRollOver = function() {
    38.     scrollen(-versatz);
    39. };
    40. ab.onRollOut = function() {
    41.     scrollen(0);
    42. };
    43. auf.onRollOver = function() {
    44.     scrollen(+versatz);
    45. };
    46. auf.onRollOut = function() {
    47.     scrollen(0);
    48. };
    49. function scrollen(richtung) {
    50.     this.onEnterFrame = function() {
    51.         if (richtung>0 && cont._y<7) {
    52.             cont._y = cont._y+richtung;
    53.         } else if (richtung<0 && cont._y>20-cont._height+255) {
    54.             cont._y = cont._y+richtung;
    55.         } else if (richtung == 0) {
    56.             delete this.onEnterFrame;
    57.         }
    58.     };
    59. }
    60. var titel:LoadVars = new LoadVars();
    61. titel.onLoad = function(test) {
    62.     if (test) {
    63.         titel = titel['titel'].split('|||');
    64.         Titelfeld.text = titel[0];
    65.     } else {
    66.         Titelfeld.text = 'Untitled';
    67.     }
    68. };
    69. titel.load('titel.txt');
    Ist jetzt ungetestet, sollte aber klappen.
    Viel Spass,

    LG B2B

    Achja, globale Variablen fütterst Du aus einer lokalen wie folgt:
    _global.meineVar=lokaleVar;
    Der Prefix _global zeichnet also globale Variablen aus.
     
    Zuletzt bearbeitet: 29.11.2007
    #2      
  3. bifi

    bifi Aktives Mitglied

    Dabei seit:
    29.10.2004
    Beiträge:
    1.144
    Geschlecht:
    männlich
    Ort:
    Mainz
    Software:
    C4D / PS
    Kameratyp:
    Canon EOS 400D
    Problem mit LoadVars & textdatei
    AW: Problem mit LoadVars & textdatei

    hey danke :)
    dann kann ich mich ja demnächst mal trauen mein Ergebnis zu zeigen

    gruß bifi

    edit: 1001. Beitrag :)
     
    #3      
x
×
×