Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash MX

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-10-2003, 21:33   #1 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
dynamisches xml-menue

hi loitz,
hab gerade mal mit xml ein wenig gebastelt,
rausgekommen ist ein dynamisches menue.
stelle das hier mal zum download, eventuell
kann es ja mal jemand gebrauchen.
das ding ist derart simpel, daß es wohl niemandem
ein prob bereiten sollte, es für seine zwecke
umzubauen. eine readme ist anbei.



grz
warrant
Angehängte Dateien
Dateityp: zip menue1.zip (8,7 KB, 5450x aufgerufen)
Dateityp: zip dyn-menue.zip (19,3 KB, 1374x aufgerufen)

Geändert von shorty (17-02-2007 um 00:15 Uhr) Grund: .zip hinzugefügt, deadlinks entfernt
warrantmaster ist offline   Mit Zitat antworten
Alt 14-10-2003, 23:28   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Habs mir gerade gezogen. Danke! Vielleicht schaff ich's ja damit mal, mich in XML + Flash einzuarbeiten.

Gruß,
Tom
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 15-10-2003, 09:03   #3 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
thanx to warrantmaster!
bin auch grade am xml plockern und da ist ein kommentiertes beispiel immer schön zur selbst prüfung!

danke!


_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815
RedSaint ist offline   Mit Zitat antworten
Alt 15-10-2003, 15:39   #4 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
hi ihr beiden,

der vorteil, den ich nach langem suchen ( ) an der
xml-geschichte sehe, sind die vordefinierten arrays.
werd mal weiter rumkramen in der ganzen sache,
eventuell find ich ja noch mehr vorteile gegenüber
einer "einfachen" txt.

grz
warrantmaster ist offline   Mit Zitat antworten
Alt 15-10-2003, 15:43   #5 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
vordefiniete arrays? hört sich interesant an!

*horcht gespannt auf*



_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815
RedSaint ist offline   Mit Zitat antworten
Alt 15-10-2003, 15:52   #6 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
Werds mit auch mal anschauen.
Danke dafür
MacEvil ist offline   Mit Zitat antworten
Alt 15-10-2003, 15:59   #7 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
@red



childNodes

Sammlung (schreibgeschützt); gibt ein Array mit den Child-Knoten des angegebenen XML-Objekts zurück. Jedes Element im Array ist ein Bezug auf ein XML-Objekt, das einen Child-Knoten darstellt. Die Eigenschaft ist schreibgeschützt und kann nicht zum Manipulieren von Child-Knoten verwendet werden. Verwenden Sie zum Manipulieren von Child-Knoten die Methoden appendChild, insertBefore und removeNode.

attributes

Sammlung (Lese-/Schreibzugriff); gibt ein assoziatives Array zurück, das alle Attribute des angegebenen XML-Objekts enthält.





warrantmaster ist offline   Mit Zitat antworten
Alt 15-10-2003, 16:03   #8 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Vor allem das Einlesen zur Laufzeit und die Editierbarkeit von Daten ohne das swf erneut exportieren zu müssen fände ich mal einen ganz praktischen Grund, sich damit auszukennen... Ich schaff's. Irgendwann ^
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 15-10-2003, 16:16   #9 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
wow - ich hab mir deine file jetzt mal genauer zur brust genommen und muss erstmal sagen: meinen respekt hast du!

hab nichtmal 100% verstanden was du in flash gekodet hast...der xml part ist mir eigentlich nach überfliegen meines workshop_XML.pdf klar


childnotes sind also diese ausdrücke:
PHP-Code:
<unternehmen sub"3" sub1="historie" sub2="standorte" sub3="menschen"></unternehmen
die ich in flash so in einen array einfüge:
ActionScript:
  1. _root[this.firstChild.childNodes[1].childNodes[z].nodeName] = [];


hab ich mir das richtig zusammengesponnen?
sorry, wenn ich mit meinem halbwissen jetzt ein bischen nerve - will deinen thread nicht misbrauchen...


_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815
RedSaint ist offline   Mit Zitat antworten
Alt 15-10-2003, 17:09   #10 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
@red

nicht ganz, mit:

_root[this.firstChild.childNodes[1].childNodes[z].nodeName] = [];

erstelle ich die arrays ("unternehmen"...etc), wobei die betitelung derselben über die zuweisung zuweisung von
...nodeName erfolgt,in die dann die entsprechenden
attribute gepusht werden.

schau mal in meinen thread "xml-struktur" im xml-bereich,
da ackere ich gerade mit nky (gruß@nky ) umher.
daher resultiert auch das script.

gruß
warrantmaster ist offline   Mit Zitat antworten
Alt 15-10-2003, 17:20   #11 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
jap hab ich mir schon alles reingezogen und gerade auchnochmal bei matze auf der site ein paar xml sachen gesaugt ... ich glaub ich muss mich einfach mal an das menü machen das mir vorschebt und dabei dann lernen ... nur lesen bringt grad glaub ich nichts mehr ...


danke so weit!


_RED_



edit: da du mir ja scheinbra zeitlich garnict sooo weit voraus bist, evtl interesiert dich diese art der anwendung von xml auch:http://www.flashforum.de/forum/showt...587#post727587 -> chinos bsp. !
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815

Geändert von RedSaint (15-10-2003 um 17:22 Uhr)
RedSaint ist offline   Mit Zitat antworten
Alt 18-10-2003, 01:04   #12 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
moin,
hab jetzt mal ein wenig weitergespielt und
rausgekommen ist ein "ausfahrmenue" ,
wie es hier oft auch nachgefragt wird.
entgegen meinen gewohnheiten hab ich die
fla jetzt mal kommentiert , ich hoffe,
einige können etwas für sich auch für
andere gelegenheiten saugen.
scriptoptimierungen natürlich immer
erwünscht

xml:

Code:
<?xml version="1.0" encoding="UTF-8"?>

<daten>
     <aktuelles sub1="heute" sub2="gestern"></aktuelles>
	 <unternehmen sub1="geschichte" sub2="standorte" sub3="philosophie" sub4="mitarbeiter"></unternehmen>
	 <leistungen sub1="web" sub2="print" sub3="cd-rom" sub4="hosting" sub5="hardware" sub6="software"></leistungen>
     <referenzen sub1="internet" sub2="interaktiv" sub3="projekte" sub4="weißnixxmehr"></referenzen>
     <links sub1="flashforum" sub2="flashstar" sub3="as.org" sub4="were here" sub5="flashbattle"></links>
	 <kontakt sub1="fon" sub2="fax" sub3="mailform" sub4="forum"></kontakt>
     <weiteres sub1="hallo" sub2="hiho" sub3="hähä" sub4="blabla" sub5="juppdidupp" sub6="peng"></weiteres>
</daten>

as:

ActionScript:
  1. font1 = new TextFormat();
  2. font1.font = "ARIAL";
  3. font1.color = 0xFFFFFF;
  4. font1.size = 10;
  5. font2 = new TextFormat();
  6. font2.font = "Tahoma";
  7. font2.color = 0x000000;
  8. font2.size = 10;
  9. startposx = 0;
  10. startposy = 30;
  11. tiefe = 10000000;
  12. abstand = 2;
  13. _root.createTextField('ausgabe', 0, 20, 5, 200, 20);
  14. //************************************
  15. //     faxxen
  16. //
  17. warrantpos=1000;
  18. warrant.onEnterFrame = function() {
  19.     this._x += (-this._x+warrantpos)*.3;
  20. };
  21. //
  22. //   ende der faxxen
  23. //************************************
  24. //
  25. //        funktion ausfahren
  26. moveout = function (nam, anz, a) {
  27.     _root['control'+a].onEnterFrame = function() {
  28.         for (var i = 1; i<=anz; i++) {
  29.             var mc1 = _root[nam+i];
  30.             // alle rausfahren
  31.             mc1._y != mc1.y+(mc1.id*hoch-hoch) ? mc1._y += 5 : 0;
  32.         }
  33.         // wenn alle draußen sind, deleten
  34.         _root[nam+anz]._y>=_root[nam+anz].y+(_root[nam+anz].id*hoch-hoch) ? delete this.onEnterFrame : 0;
  35.     };
  36. };
  37. //       funktion  einfahren
  38. movein = function (nam, anz, a, starty) {
  39.     _root['control'+a].onEnterFrame = function() {
  40.         for (var i = 1; i<=anz; i++) {
  41.             // alle reinfahren
  42.             _root[nam+i]._y != starty ? _root[nam+i]._y -= 5 : 0;
  43.         }
  44.         // wenn alle wieder drinnen, deleten
  45.         _root[nam+anz]._y<=starty ? (_root.ausgabe.text="", delete this.onEnterFrame) : 0;
  46.     };
  47. };
  48. //
  49. //
  50. //***********************************************
  51. make = function (a, nam, anz, startx, starty, tiefe) {
  52.     MovieClip.prototype.funktionen = function() {
  53.         with (this) {
  54.             // wenn du ein hauptmenuepunkt bist, dann lade dir den bt1 aus der
  55.             // bibliothek und bringe den effekt mc (licht) nach vorn
  56.             this.id == 1 ? (this.attachMovie('bt1', 'dummy', 0), this.licht.swapDepths(0)) : 0;
  57.             // ertelle ein textfeld für die beschriftung
  58.             createTextField('txt', 1, 10, 2, 90, 18);
  59.             // damit der cursor nicht zum tab wird
  60.             txt.selectable = 0;
  61.             // beschriften
  62.             this.id == 1 ? txt.text=nam : txt.text=_root['subarr'+a][this.id-2];
  63.             // schriftart zuweisen
  64.             this.id == 1 ? txt.setTextFormat(font1) : txt.setTextFormat(font2);
  65.         }
  66.         this.onPress = function() {
  67.             this.id != 1 ? (warrantpos=this._x+50,ausgabe._x=this._x+10, ausgabe.text=this.txt.text, ausgabe.setTextFormat(font1)) : 0;
  68.         };
  69.         this.onRollOut = function() {
  70.             // einfahren
  71.             movein(nam, anz, a, startposy);
  72.         };
  73.         this.onRollOver = function() {
  74.             this.licht.play();
  75.             // ausfahren
  76.             moveout(nam, anz, a);
  77.         };
  78.     };
  79.     // +++++++++++++++++++++++++++++++++++++++++
  80.     // eigentliche erstellung der buttons
  81.     // +++++++++++++++++++++++++++++++++++++++++
  82.     //
  83.     for (var i = 1; i<=anz; i++) {
  84.         var mc = _root.attachMovie('bt', nam+i, tiefe-i);
  85.         _root.hoch = mc._height;
  86.         _root.breit = mc._width;
  87.         mc._x = startx;
  88.         mc._y = starty;
  89.         mc.y = mc._y;
  90.         mc.id = i;
  91.         // hier werden alle buttons in das array gepusht
  92.         // dient lediglich zum positionieren (siehe zeilen 98 und 158)
  93.         _root.rootarr.push(mc);
  94.         mc.funktionen();
  95.     }
  96. };
  97. los = function () {
  98.     // erstellung eines arrays zum einlesen aller erstellten buttons (siehe zeile 92 )
  99.     _root.rootarr = [];
  100.     // für jeden hauptmenuepunkt einen seperaten controller
  101.     // erstellen, der die onenterframe-funktion für das
  102.     // ein-und ausfahren übernehmen wird (siehe zeilen 27 und 39 )
  103.     for (var i = 0; i<arr.length; i++) {
  104.         _root.createEmptyMovieClip('control'+i, i+100000);
  105.     }
  106.     // aufruf der erstellungsfunktion mit übergabe
  107.     // der namen für die einzelnen buttons etc.( siehe zeile 51)
  108.     for (var i = 0; i<arr.length; i++) {
  109.         make(i, arr[i], _root['subarr'+i].length+1, startposx, startposy, tiefe);
  110.         // bei jedem schleifendurchlauf die _x-position
  111.         // sowie die tiefe verändert
  112.         startposx += _root.breit+abstand;
  113.         tiefe -= _root['subarr'+i].length+1;
  114.     }
  115. };
  116. m = new XML();
  117. m.ignoreWhite = true;
  118. m.onLoad = function(ok) {
  119.     if (ok) {
  120.         //  array für die hauptmenuepunkte
  121.         _root.arr = [];
  122.         //  anzahl der hauptmenuepunkte
  123.         var xx = this.firstChild.childNodes.length;
  124.         for (var i = 0; i<xx; i++) {
  125.             //   arrays für die untermenuepunkte
  126.             _root['subarr'+i] = [];
  127.             //    hauptmenuepunkte in's array
  128.             _root.arr.push(this.firstChild.childNodes[i].nodeName);
  129.             //     untermenuepunkte in die entsprechenden arrays
  130.             for (k in this.firstChild.childNodes[i].attributes) {
  131.                 _root['subarr'+i].push(this.firstChild.childNodes[i].attributes[k]);
  132.             }
  133.         }
  134.         //++++++++++++++++++++++++++++++++++++++++++++++++
  135.         //   positionierung Stage-mitte
  136.         //++++++++++++++++++++++++++++++++++++++++++++++++
  137.         //
  138.         //   ermitteln des zuletzt zuzuweisenden buttontext
  139.         //   zur überprüfung des vorhandenseins auf der bühne
  140.         var last = _root['subarr'+(xx-1)][_root['subarr'+(xx-1)].length-1];
  141.         //
  142.         //    den beobachter erstellen
  143.         _root.createEmptyMovieClip('watcher', -1);
  144.         _root.watcher.onEnterFrame = function() {
  145.             //    die lage peilen....
  146.             for (var jj in _root) {
  147.                 //   wenn also der letzte text (last ) vergeben ist...
  148.                 if (eval(jj).txt.text == last) {
  149.                     //   beobachten einstellen
  150.                     delete this.onEnterFrame;
  151.                     //   aus dem array mit den erstellten instanzen
  152.                     //   den am weitesten rechts (letzten) heraussuchen
  153.                     var letzter = _root.rootarr[_root.rootarr.length-1];
  154.                     //   dessen _x und _width zur ermittlung des verbleibenden
  155.                     //   platzes auf der Stage benutzen
  156.                     distance = (Stage.width-(letzter._x+letzter._width))/2;
  157.                     //   alle erstellten instanzen (die ja im array _root.rootarr
  158.                     //   liegen siehe zeilen 92 und 99) um den betrag nach rechts schieben
  159.                     for (var yy = 0; yy<_root.rootarr.length; yy++) {
  160.                         _root.rootarr[yy]._x += distance;
  161.                     }
  162.                 }
  163.             }
  164.         };
  165.         //   ende positionierung Stage-mitte
  166.         //
  167.         //   startbefehl zum generieren (zeile 97)
  168.         los();
  169.     }
  170. };
  171. m.load('menue1.xml');

hier mal anschauen


fla und xml in der zip.
gruß
Angehängte Dateien
Dateityp: zip dyn-menue.zip (18,1 KB, 2117x aufgerufen)
warrantmaster ist offline   Mit Zitat antworten
Alt 18-10-2003, 07:28   #13 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
WoW.
Sieht ja super aus ! *Auch sowas verwenden will !
MacEvil ist offline   Mit Zitat antworten
Alt 18-10-2003, 14:58   #14 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
@mac

do it !
warrantmaster ist offline   Mit Zitat antworten
Alt 06-11-2003, 13:19   #15 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
@ warrant - *enzückt* Sieht very nice aus ! Auch der Aufbau des XML`s ist sehr schön - Diggän Respäkt !

Gruss nky
nky 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 02:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele