Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-09-2004, 13:59   #1 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
pfade zu bildern per xml laden...

hi alle,

hab folgendes problem:
ich möchte per schleife images laden, deren pfade in einer xml definiert werden. die images sollen in attachte container-mc's geladen werden...
ich bekomm irgendwie alle variablen und so weiter richtig getraced, die zuweisung der pfade funktioniert aber nicht:

das ist mein script:
ActionScript:
  1. //////////////////////////////////////////////////////////////////////////////////
  2. stop();
  3. timeLine = this;
  4. zaehler = 0;
  5. function showPreload() {
  6.     imagesLoaded = 0;
  7.     for (var i = 0; i<timeLine.alleBilder; i++) {
  8.         loadedBytes = timeLine["image_"+i+"_mc"].target_mc.getBytesLoaded();
  9.         totalBytes = timeLine["image_"+i+"_mc"].target_mc.getBytesTotal();
  10.         if (loadedBytes == totalBytes && merkerLoaded>10) {
  11.             imagesLoaded++;
  12.         }
  13.         if (imagesLoaded == timeLine.alleBilder) {
  14.             clearInterval(idPreloadImages);
  15.             //resizeImages(75);
  16.         }
  17.     }
  18.     merkerLoaded++;
  19.     updateAfterEvent();
  20. }
  21. //////////////////////////////////////////////////////////////////////////////////
  22. function geladen(erfolgreich) {
  23.     for (var i = 0; i<info_xml.firstChild.childNodes.length; i++) {
  24.         timeLine.attachMovie("image_mc", "image_"+i+"_mc", i);
  25.         timeLine["image_"+i+"_mc"]._x = 114*i;
  26.         timeLine["image_"+i+"_mc"]._y = 5;
  27.         timeLine["image_"+i+"_mc"].id = i;
  28.         timeLine["image_"+i+"_mc"].target_mc.loadMovie("images/"+_parent.images_array[id][zaehler]);
  29.  
  30.     }
  31.     merkerLoaded = 0;
  32.     timeLine.alleBilder = info_xml.firstChild.childNodes.length;
  33.     idPreloadImages = setInterval(showPreload, 1);
  34. }
  35. //////////////////////////////////////////////////////////////////////////////////
  36. function ladeXML() {
  37.     info_xml = new XML();
  38.     info_xml.ignoreWhite = true;
  39.     info_xml.load("content_home.xml");
  40.     info_xml.onLoad = function() {
  41.         info_array = new Array();
  42.         images_array = new Array();
  43.         for (var i = 0; i<info_xml.firstChild.childNodes.length; i++) {
  44.             info_array[i] = new Array();
  45.             images_array[i] = new Array();
  46.             for (var y = 0; y<1; y++) {
  47.                 info_array[i][y] = info_xml.firstChild.childNodes[i].childNodes[y].firstChild.nodeValue;
  48.             }
  49.             z = 0;
  50.             for (var y = 1; y<info_xml.firstChild.childNodes[i].childNodes.length; y++) {
  51.                 images_array[i][z] = info_xml.firstChild.childNodes[i].childNodes[y].firstChild.nodeValue;
  52.                 z++;
  53.             }
  54.            
  55.         }
  56.         geladen();
  57.     };
  58. }
  59. //////////////////////////////////////////////////////////////////////////////////
  60. this.LadeObj = new LoadVars();
  61. this.LadeObj.load("content_home.xml");
  62. this.LadeObj.onLoad = ladeXML;

für mich ist das arbeiten mit xml noch ziemlich neu und ich weiß nicht, ob ich irgendwas vergessen habe oder sonst wo was falsch ist... vielleicht sieht jemand den fehler ???

danke
tom
modul47 ist offline   Mit Zitat antworten
Alt 27-09-2004, 14:27   #2 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
die xml ?
warrantmaster ist offline   Mit Zitat antworten
Alt 27-09-2004, 19:49   #3 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
sorry,

hier:
Code:
<?xml version="1.0" ?>
<root>
<item>
	<name>gore</name>
	<img>00000000015.jpg</img>
</item>
<item>
	<name>erlus</name>
	<img>00000000011.jpg</img>
</item>
<item>
	<name>eon</name>
	<img>00000000006.jpg</img>
</item>
<item>
	<name>caterpillar</name>
	<img>00000000001.jpg</img>
</item>
</root>
modul47 ist offline   Mit Zitat antworten
Alt 28-09-2004, 14:33   #4 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
keiner ne ahnung??

bitte guckts euch mal an...

thx,
tom
modul47 ist offline   Mit Zitat antworten
Alt 28-09-2004, 15:41   #5 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
frage:
PHP-Code:
for (var 0y<1y++) {
                
info_array[i][y] = info_xml.firstChild.childNodes[i].childNodes[y].firstChild.nodeValue;
            }
            
0;
            for (var 
1y<info_xml.firstChild.childNodes[i].childNodes.lengthy++) {
                
images_array[i][z] = info_xml.firstChild.childNodes[i].childNodes[y].firstChild.nodeValue;
                
z++;
            } 
wo liegt der sinn der unterschiedlichen behandlung der beiden arrays ?
anders: du willst den kommentar (name) zu jedem bild haben ?
warrantmaster ist offline   Mit Zitat antworten
Alt 28-09-2004, 15:48   #6 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
ja, da soll ein kommentar zu jedem bild angezeigt werden...
modul47 ist offline   Mit Zitat antworten
Alt 28-09-2004, 16:00   #7 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
dazu reicht ein array (2D) :

PHP-Code:
//   array erstellen
var arr=[]
//   xml-objekt erstellen
var = new XML();
m.ignoreWhite true;
m.onLoad = function(ok
{
    if (
ok
    {
        
// zur verkürzung der schreiberei vars deklarieren
        
var this.firstChild.childNodes.length;
        var 
cnthis.firstChild.childNodes
        
for(var i=0;i<l;i++)
        {
            
//  2.dimension im array erstellen (wieder arrays)
            
arr[i]=[]
            
//  die werte aus deiner xml einlesen
            
arr[i].push(cn[i].childNodes[0].firstChild.nodeValue)
            
arr[i].push(cn[i].childNodes[1].firstChild.nodeValue)
        }
        
//  ausgeben
        
for(var i=0;i<l;i++)
        {
            
trace("titel: "+arr[i][0]+"    bildname:  "+arr[i][1])
        }
    }
};
m.load('test.xml'); 


der zugriff auf deine werte läuft jetzt also über:

arr[x][0] für den titel und arr[x][1] für den bildnamen
warrantmaster ist offline   Mit Zitat antworten
Alt 28-09-2004, 16:02   #8 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
okay schau ich mir gleich an...

danke!
tom
modul47 ist offline   Mit Zitat antworten
Alt 28-09-2004, 17:44   #9 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
okay... geht.
nur um richtig glücklich zu werden, müsst ich jetzt noch die length meiner unterstruktur auslesen.

beispieL
Code:
<root>
<department>
	<dpt_name>Produktion</dpt_name>
	<teammate>
		<name>alfons burgmair</name>
		<img>00000000028.jpg</img>
		<name>sebastian bayerl</name>
		<img>00000000029.jpg</img>
		<name>martin stiel-fischer</name>
		<img>00000000030.jpg</img>
		<name>reiner neumann</name>
		<img>00000000031.jpg</img>
		<name>hans reidl</name>
		<img>00000000032.jpg</img>
		<name>karl groll</name>
		<img>00000000033.jpg</img>
		<name>bernhard ismair</name>
		<img>00000000034.jpg</img>
	</teammate>
</department>
<department>
..............
</department>
</root>
soll heißen, wie oft steht im xml name/img unter teammate?
wenn ich mit
ActionScript:
  1. this.firstChild.childNodes.length;
abfrage, bekomm ich nur die anzahl der "department"-blöcke.
ich bräuchte aber die anzahl der [name/img]-blöcke.
also wie oft befindet sich unter "teammate" das pärchen "name/img"?

ich bin da unfirm drin, den "pfad" zu bekommen, und die tutorials bei macromedia.com erwähnen sowas gar nicht...

danke,
tom
modul47 ist offline   Mit Zitat antworten
Alt 28-09-2004, 18:10   #10 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
Zitat:
Zitat von modul47

ich bin da unfirm drin, den "pfad" zu bekommen, und die tutorials bei macromedia.com erwähnen sowas gar nicht...

wäre jetzt eine sache von einer minute, aber wie sieht es denn
mit der flash-hilfe und 'rumprobieren' aus ?
warrantmaster ist offline   Mit Zitat antworten
Alt 28-09-2004, 18:17   #11 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
flashhilfe hat mir auch nix gebracht und ne stunde rumprobieren reicht, find ich

wenn du die minute hättest. ich weiß einfach nicht, wie ich ein unterobjekt da anspreche...
wär äußerst nett!

danke
tom
modul47 ist offline   Mit Zitat antworten
Alt 29-09-2004, 12:53   #12 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
Zitat:
Zitat von modul47
flashhilfe hat mir auch nix gebracht und ne stunde rumprobieren reicht, find ich
...

...findest du ? dann wirst du es nie lernen !

PHP-Code:
var main=this
departments
=[]
var 
= new XML();
m.ignoreWhite true;
m.onLoad = function(ok
{
    if (
ok
    {
        var 
this.firstChild.childNodes.length;
        var 
cnthis.firstChild.childNodes        
        
for(var i=0;i<l;i++)
        {
            var 
arrname=cn[i].childNodes[0].firstChild.nodeValue
            departments
.push(arrname)
            
main[arrname]=[]
            var 
arr=main[arrname]
            var 
nl=cn[i].childNodes[1].childNodes.length
            
var ncn=cn[i].childNodes[1].childNodes
            
for(var k=0;k<nl;k+=2)
            {
                
j=k/2
                arr
[j]=[]
                
arr[j].push(ncn[k].firstChild.nodeValue)
                
arr[j].push(ncn[k+1].firstChild.nodeValue)
            }
        }
        for(var 
n=0;n<departments.length;n++)
        {
        
ausgeben(departments[n])
        }
    }
};

function 
ausgeben(bezeichner)
{
    var 
wer=main[bezeichner]
    
trace("ausgabe der daten aus dem array  '"+bezeichner+"'"+newline)
    for(var 
i=0;i<wer.length;i++)
    {
        
trace("name:  "+wer[i][0]+"              Bild: "+wer[i][1])
    }
    
trace(newline+"------------------------------------------------------")
}

m.load('test.xml'); 

extra nicht kommentiert, damit du dich wenigstens reindenken mußt

grz
warrantmaster ist offline   Mit Zitat antworten
Alt 29-09-2004, 13:19   #13 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
danke,
ich werds schon lernen, aber wenn man an einer zeile ne stunde rumprobiert, kann einen das ganz schön auf die palme bringen, das wirst du ja verstehen...

ich schau mir das mal an, und ich werds kapieren, versprochen

vielen dank soweit
tom
modul47 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 00:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele