XML ermöglicht dynamische Downloads per Flash MX

In jedem Node (oder jeder Seite) dieser einfachen Anwendung geschieht das Folgende:

Zeile 39: Der Movie-Clip pages wird so oft verdoppelt und umbenannt, wie Nodes vorhanden sind. Der Instanzname jeder neuen Kopie beinhaltet Variable j, wodurch jede Kopie eindeutig benannt und der Anwendung vollständig zur Verfügung gestellt wird.

Zeile 40: Der Clip page (1, 2, 3 etc…) wird so häufig, wie Nodes vorhanden sind alle 239 Pixel auf seine _y Position gesetzt.

Zeile 41: page (page1, page2 etc.) wird eine Positionseigenschaft zugeteilt. Dies bedeutet, dass man ein Array mit der Positionseigenschaft der Clipinstanz füllen kann. Außerdem kann man den Wert auch in den Text laden, der in Kürze in das Textfeld menu_txt des Clips menu ausgegeben werden wird.

Zeile 42: Das Titelattribut jedes Nodes wird in das Array titles geschoben. Dies macht den Titel jeder Seite genauso leicht zugänglich wie ihre Position.

Zeile 43: Hier geschieht das gleiche wie in der vorherigen Zeile, mit dem Unterschied, dass nun die Positionseigenschaft jedes kopierten Seitenclips in ein Array mit dem Namen positions verschoben wird.

Nun ist es an der Zeit, eine Ebene tiefer in die XML-Struktur einzutauchen und menu zu laden. In den Zeilen 44 bis 49 wird das Textfeld pageTitle jedes kopierten Movie-Clips pages mit dem Titelattribut jedes XML-Nodes gefüllt, sofern der Node-Name aller „Kinder“ von allNodes page lautet (was auch der Fall ist).

Zeile 46 stellt die Variable linkText auf das Namensattribut jedes Nodes ein, um menu mit dem Namen jeder Seite aus der XML zu laden. Wie in Tabelle F dargestellt, ist das Textfeld menu_text von menu so eingestellt, HTML zu empfangen, und menu selbst wird mit Hilfe unseres Arrays positions und unserer Variablen linkText mit HTML-formatiertem Text gefüttert.

37 j = 0;
38 while (j<allNodes.length) {
39 duplicateMovieClip(_root.pages[„page“], „page“+j, j);
40 setProperty(_root.pages[„page“+j], _y, j*239);
41 _root.pages[„page“+j].location = -j*239;
42 titles.push(allNodes[j].attributes.title);
43 positions.push(_root.pages[„page“+j].location);
44 if (allNodes[j].nodeName == „page“) {
45 _root.pages[„page“+j].pageTitle =
allNodes[j].attributes.title;
46 var linkText = allNodes[j].attributes.name;
47 _root.menu.menu_txt.html = true;
48 _root.menu.menu_txt += „<a href=“asfunction:_root.pageMove,
„+positions[j]+““>“+linkText+“</a><br>“;
49 }
50 j++;
51 }


Tabelle F

Der HTML-formatierte Text enthält Links, die aber nicht auf Webseiten verlinken, sondern stattdessen mit Hilfe von asfunction(), das bereits erwähnt wurde, eine Funktion auf der Zeitleiste ausführen. In Zeile 48 leitet asfunction() die Position jedes kopierten Movie-Clips page an die Funktion pageMove() weiter:

Page: 1 2 3 4 5 6 7 8

ZDNet.de Redaktion

Recent Posts

Roblox: 34 Millionen Zugangsdaten im Darknet

Laut Kaspersky nehmen Infostealer gerade auch Spieleplattformen ins Visier. Neue Studie untersucht Angriffe zwischen 2021…

2 Wochen ago

EU-Datenschützer kritisieren Facebooks „Zustimmung oder Bezahlung“-Modell

Ohne eine kostenlose Alternative, die ohne Zustimmung zur Verarbeitung personenbezogener Daten zu Werbezwecken auskommt, ist…

3 Wochen ago

Europol meldet Zerschlagung der Phishing-as-a-Service-Plattform LabHost

LabHost gilt als einer der größten Phishing-Dienstleister weltweit. Die Ermittler verhaften 37 Verdächtige, darunter der…

3 Wochen ago

DE-CIX Frankfurt bricht Schallmauer von 17 Terabit Datendurchsatz pro Sekunde

Neuer Datendurchsatz-Rekord an Europas größtem Internetknoten parallel zum Champions-League-Viertelfinale.

3 Wochen ago

Samsungs neuer LPDDR5X-DRAM erreicht 10,7 Gbit/s

Die neuen Chips bieten bis zu 25 Prozent mehr Leistung. Samsung steigert auch die Energieeffizienz…

3 Wochen ago

Cisco warnt vor massenhaften Brute-Force-Angriffen auf VPNs

Betroffen sind Lösungen von Cisco, Fortinet, SonicWall und anderen Anbietern. Die Hacker nehmen Konten mit…

3 Wochen ago