Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-05-2005, 17:37   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 79
bildergallerie mit XML füllen

Hallo zusammen,

erstmal ein THX an pape für seinen klasse XML thread , hab zwischenzeitlich auch einige andere Beiträge genutzt, deren Autoren ich allerding nicht mehr im Kopf habe...

eins noch vorweg, das ganze ist zur zeit noch ne ziemliche Baustelle, da noch ne ganze Menge fehlt und ich versch. Sachen gleichzeitig ausprobier

wo möchte ich hin:
+ Bildergallerie, deren Sub-Navigation und Inhalte (bis auf Bilder) in einer XML Datei stehen
(die komplette Navigation dynamisch zu generieren ist für mich im Moment wohl zu aufwändig, da ich zumindest noch die Hauptnavigationspunkte animieren möchte und das per AS zu realisieren hab ich sowas von kein plan von ... )
+ klick auf hauptnavigationspunkt (illustration, animation, something) lädt dynamische Anzahl von buttons
+ klick auf buttons öffnen thumbnail, samt link zu großem Bild, Überschrift und Text aus XML


was funktioniert:
+ Hauptnavigation
+ laden von Thumbnails, Überschrift, Texten
+ generieren von subnavigation
+ klick auf thumbnail öffnet bild in neuem browserfenster


was noch nicht klappt:
+ dynamische buttons mit AS ansprechen / klickbar machen (hab schon div. pfade ausprobiert, leider ohne Erfolg, vielleicht hab ich was übersehn)
+ dynamische buttons mit removeMovieclip löschen sobald neuer Haupt-navigationspunkt geklickt wird (klappt wohl aus dem gleichen Grund wie oben nicht *seufz*)
+ Abstand der dynamischen Buttons untereinander stimmt nicht (KA warum, hab zu den x, y koordinaten eigentlich noch pixel dazu gerechnet (gap) seltsam )
+ formatieren der texte im XML mit HTML-Tags (hab schon diverse Threads zu diesem Thema durchgelesen, mit CDATA klappts aber noch nicht, mmhh hab wohl einfach ein ziemlich großes Brett vorm kopf ... )


hier der code der XML

Code:
<?xml version='1.0' encoding='utf-8'?>
<galery>
	<illustration name="illustration" path="illustration">
		<illustration_pic_1
		name="pic_1"
		thumb="pic_1_t.jpg"
		pic="pic_1.jpg"
		headline="Hier seht ihr die 1. Illustration"
		text_long="Nun folgt noch eine mehr oder weniger kurze Geschichte zu dem Bild"
		/>
		<illustration_pic_2
		name="pic_2"
		thumb="pic_2_t.jpg"
		pic="pic_2.jpg"
		headline="Hier seht ihr die 2. Illustration"
		text_long="Nun folgt noch eine mehr oder weniger kurze Geschichte zu dem Bild"
		/>
		<illustration_pic_3
		name="pic_3"
		thumb="pic_3_t.jpg"
		pic="pic_3.jpg"
		headline="Hier seht ihr die 3. Illustration"
		text_long="Nun folgt noch eine mehr oder weniger kurze Geschichte zu dem Bild"
		/>
		<illustration_pic_4
		name="pic_4"
		thumb="pic_4_t.jpg"
		pic="pic_4.jpg"
		headline="Hier seht ihr die 4. Illustration"
		text_long="Nun folgt noch eine mehr oder weniger kurze Geschichte zu dem Bild"
		/>
		<illustration_pic_5
		name="pic_5"
		thumb="pic_5_t.jpg"
		pic="pic_5.jpg"
		headline="Hier seht ihr die 5. Illustration"
		text_long="Nun folgt noch eine mehr oder weniger kurze Geschichte zu dem Bild"
		/>
		<illustration_pic_6
		name="pic_6"
		thumb="pic_6_t.jpg"
		pic="pic_6.jpg"
		headline="Hier seht ihr die 6. Illustration"
		text_long="Nun folgt noch eine mehr oder weniger kurze Geschichte zu dem Bild"
		/>
		<illustration_pic_7
		name="pic_7"
		thumb="pic_7_t.jpg"
		pic="pic_7.jpg"
		headline="Hier seht ihr die 7. Illustration"
		text_long="Nun folgt noch eine mehr oder weniger kurze Geschichte zu dem Bild"
		/>
		<illustration_pic_8
		name="pic_8"
		thumb="pic_8_t.jpg"
		pic="pic_8.jpg"
		headline="Hier seht ihr die 8. Illustration"
		text_long="Nun folgt noch eine mehr oder weniger kurze Geschichte zu dem Bild"
		/>
	</illustration>
	<animation name="animation" path="animation">
		<animation_pic_1
		name="pic_1"
		thumb="pic_1_t.jpg"
		pic="pic_1.jpg"
		headline="Hier seht ihr die 1. Animation"
		text_long="Nun folgt noch eine mehr oder weniger kurze Geschichte zu der Animation"
		/>
	</animation>
	<something name="something" path="something">
		<animation_pic_1
		name="pic_1"
		thumb="pic_1_t.jpg"
		pic="pic_1.jpg"
		headline="Hier seht ihr 1. something"
		>
			<text_long name="text_long">
			<![CDATA[<a href="http://www.blabla.de/">www.blabla.de</a>]]
			</text>
		</animation_pic_1>
	</something>
</galery>


jetzt noch das AS (hoffmal das das nicht zu viel ist :P):

ActionScript:
  1. stop();
  2.  
  3. // textfield setup /////////////////////////////////////////////////////////////////////
  4. _root.headline.multiline = true;
  5. _root.headline.html = true ;
  6. _root.text_long.multiline = true;
  7. _root.text_long.html = true ;
  8.  
  9.  
  10. // load gallery //////////////////////////////////////////////////////////////////////
  11. var XMLgallery = new XML(); // new XML objekt
  12. XMLgallery.ignoreWhite=true; // ignores whitespaces of XML-file
  13. XMLgallery.load("gallery.xml");
  14. XMLgallery.onLoad = function(success) {
  15.  
  16.     if (success) { // if XML successfully loaded
  17.         current_category = 0
  18.         load_pics (current_category);
  19.         current_pic = 0; // determine which pic to show
  20.         show_pic (current_category, current_pic); // in this case show first pic of this category first 
  21.         var pic_ammount = XMLgallery.firstChild.childNodes[current_category].childNodes.length; // count number of pics within categories
  22.         load_selectors (pic_ammount);
  23.     }
  24. }
  25.  
  26. function load_pics (current_category:Number, current_pic:Number):Void { // load pics + infos
  27.    
  28.     _global.pic_ammount = XMLgallery.firstChild.childNodes[current_category].childNodes.length; // count number of pics within categories and make this variable available globally
  29.     XMLgallery_pic_name = []; // new array
  30.     XMLgallery_thumb = [];
  31.     XMLgallery_pic = [];
  32.     XMLgallery_headline = [];
  33.     XMLgallery_text_long = [];
  34.    
  35.     for (var i=0; i<pic_ammount; i++) {// repeat as often as pics are in current category
  36.         XMLgallery_pic_name[i] = XMLgallery.firstChild.childNodes[current_category].childNodes[i].attributes.name;
  37.     }
  38. }
  39.  
  40. function show_pic (current_category:Number, current_pic:Number):Void { // show pic + infos
  41.     _root.thumb.loadMovie(XMLgallery.firstChild.childNodes[current_category].attributes.name + "/" + XMLgallery.firstChild.childNodes[current_category].childNodes[current_pic].attributes.thumb);
  42.     // trace (XMLgallery.firstChild.childNodes[current_category].attributes.name + "/" + XMLgallery.firstChild.childNodes[current_category].childNodes[current_pic].attributes.thumb);
  43.     _root.headline.text = XMLgallery.firstChild.childNodes[current_category].childNodes[current_pic].attributes.headline;
  44.     _root.text_long.text = XMLgallery.firstChild.childNodes[current_category].childNodes[current_pic].attributes.text_long
  45. }
  46.  
  47.  
  48.  
  49. function load_selectors (pic_ammount:Number) { // selectors = buttons which load thumbnail
  50.     selectors_per_line = 5; // max. ammount of selectors per line
  51.     current_row = 0; // row at which to put next selector
  52.     current_column = 0; // column at which to put next selector
  53.     current_selector = 1; // number of current selector
  54.     selector_w = _root.selector._width;
  55.     selector_h = _root.selector._height;
  56.     default_x = 24; // x position where to place first MC
  57.     default_y = 225; // y position where to place first MC
  58.     gap = 10; // gap between MCs
  59.    
  60.     for (var i=0; i<pic_ammount; i++) { // repeat as often as pics are in current category
  61.         selector._x = default_x + current_column * selector_w + gap; // new x position
  62.         selector._y = default_y + current_row * selector_h + gap; // new y position
  63.        
  64.         //trace ("selector number: " + current_selector);
  65.         //trace ("selector row: " + current_row);
  66.         //trace ("selector column: " + current_column);
  67.         //trace ("selector x position: " + selector._x);
  68.         //trace ("selector y position: " + selector._y);
  69.         //trace ("-------------------");
  70.        
  71.         _root.selector.duplicateMovieClip(created_selector_[current_selector], current_selector); //create new selector with current_selector ID on current_selector number layer
  72.         created_selector_[current_selector]._x = selector._x;
  73.         created_selector_[current_selector]._y = selector._y;
  74.         //trace (created_selector_[current_selector]);
  75.        
  76.         _root.created_selector_[current_selector].onRelease = function() {
  77.                 trace ("release");
  78.             }
  79.         _root.created_selector_[current_selector].onRollOver = function() {
  80.                 trace ("mouseover");
  81.             }
  82.        
  83.         if ((current_selector % selectors_per_line) == 0) { // if end of row reached
  84.             current_row++; // increase row number
  85.             current_column = -1; // reset column
  86.         }
  87.         current_selector++;
  88.         current_column++;
  89.     }
  90. }
  91.  
  92. function remove_selectors (pic_ammount:Number){
  93.     for (var i=0; i<pic_ammount; i++) { // repeat as often as pics/ selectors are in current category
  94.         created_selector_[i+1].removeMovieClip();
  95.         trace ("remove: selector " + (i+1));
  96.     }
  97. }
  98.  
  99.  
  100. // buttons /////////////////////////////////////////////////////////////////////////////
  101. btn_illustration.onRelease = function() {
  102.     trace ("illustration");
  103.     current_category = 0;
  104.     load_pics (current_category);
  105.     current_pic = 0; // determine which pic to show first
  106.     show_pic (current_category, current_pic); // show first pic of this category first
  107.     remove_selectors (pic_ammount); // remove selector instances from previously viewed category
  108. }
  109. btn_animation.onRelease = function() {
  110.     trace ("animation");
  111.     current_category = 1;
  112.     load_pics (current_category);
  113.     current_pic = 0;
  114.     show_pic (current_category, current_pic);
  115.     remove_selectors (pic_ammount);
  116. }
  117. btn_something.onRelease = function() {
  118.     trace ("something");
  119.     current_category = 2;
  120.     load_pics (current_category);
  121.     current_pic = 0;
  122.     show_pic (current_category, current_pic);
  123.     remove_selectors (pic_ammount);
  124. }




hoffe das ihr mir helfen könnt

PS: das angehängte ZIP enthält nicht alle nötigen pics, weils sonst zu groß ist ums hier hochzuladen...
Angehängte Dateien
Dateityp: zip gallery.zip (35,2 KB, 76x aufgerufen)

Geändert von kharn (03-05-2005 um 17:41 Uhr)
kharn ist offline   Mit Zitat antworten
Alt 03-05-2005, 19:15   #2 (permalink)
Gimbel Deluchs
 
Registriert seit: Apr 2004
Ort: Wieder da!
Beiträge: 153
Hi,

also ich helf Dir schonmal mit den dynamischen Buttons - nett gell

PHP-Code:

 
var mc:MovieClip _root.selector.duplicateMovieClip("irgendwas" current_selectorcurrent_selector);
        
mc._x selector._x;
        
mc._y selector._y;
        
        
        
mc.onRelease = function() {
                
trace ("release");
            }
        
mc.onRollOver = function() {
                
trace ("mouseover");
            } 

Hoffe das hilft

Gruss Frederik

Geändert von Mr.Dauerfeuer (04-05-2005 um 18:24 Uhr)
Mr.Dauerfeuer ist offline   Mit Zitat antworten
Alt 03-05-2005, 19:19   #3 (permalink)
Gimbel Deluchs
 
Registriert seit: Apr 2004
Ort: Wieder da!
Beiträge: 153
achso...damit Du später auch auf die Btns verweisen kannst mach noch sowas:

PHP-Code:
// irgendwo oben in dem Script
var meineBtns:Array = new Array();

// des hier in deine Schleife unter des "dublicateMovieClip"
meineBtns[current_selector] = mc
Mr.Dauerfeuer ist offline   Mit Zitat antworten
Alt 03-05-2005, 22:27   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 79
THX Frederik , probier das gleich mal aus

sag mal die Hintergrundbilder deiner Site, hast du die geschossen?
kharn ist offline   Mit Zitat antworten
Alt 04-05-2005, 12:23   #5 (permalink)
Gimbel Deluchs
 
Registriert seit: Apr 2004
Ort: Wieder da!
Beiträge: 153
bis auf des Bild unter "Profile" sind die von mir...
Mr.Dauerfeuer 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 19:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele