Flashhilfe.de - Flash Community

Probleme bei Texte aus XML dynamisch auslesen [Flash CS4]

 


AntwortenRegistrieren Seite1 2 3 4 5 6 7  

Purgar#17
Benutzerbild von Purgar
Beiträge: 151
Registriert: May 2010

Themenautor/in

02.01.2011, 19:31

danke, das habe ich jetzt erstmal so gemacht. so aber wie sage ich denn, dass nur die gallery unter der entsprechenden id geladen werden soll...ohne dabei auf die festen id-werte einzeln auszulesen, denn es kann ja immer wieder vorkommen, dass eine neue id in die xml eingefügt wird.
RustyCake#18
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

03.01.2011, 00:43

Sorry, verstehe gerade nicht was Du meinst, wenn der Titel immer mit den Galerie-ID's zusammenhängen muß, hang den titel in den Galerie_tag.
<gallery id ="01" titel ="Weihnachten">
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Purgar#19
Benutzerbild von Purgar
Beiträge: 151
Registriert: May 2010

Themenautor/in

03.01.2011, 09:57

puh, das ist alles gar net so einfach..oder meine denkweise ist einfach verkehrt..
so ich habe das jetzt alles so gemacht, also den titel ausserhalb der schleife ausgelesen..das funktioniert aber nur, wenn ich keine neue gallery dazufügen würde und es bei einer belasse. Sobald ich eine neue gallery mit neuer id und neuem titel in die xml einfüge mit neuen images, liest er mir zwar die images aus, aber nicht den dazugehören gallerie titel. wenn ich den titel in der schleife auslese, und
[script]for (var item:uint = 0; item < xml_dokument.gallery.length(); item++ )/script]

die schleife so setze, bekomme ich auch die bilder ausgelesen, nur leider so, dass ich sie nicht nacheinander in den scroller laden kann.
Werbung
Beiträge: 0
Registriert: Feb 2016


RustyCake#20
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

03.01.2011, 11:29

Wie darf man sich Deine xml jetzt vorstellen!
So?
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="iso-8859-1"?>
<images>
  <gallery id="2" title="weihnachten">
    <image src="images/tn/10.jpg"/>
    <image src="images/tn/11.jpg"/>
    <image src="images/tn/12.jpg"/>
  </gallery>
  <gallery id="2" title="neujahr">
    <image src="images/tn/10.jpg"/>
    <image src="images/tn/11.jpg"/>
    <image src="images/tn/12.jpg"/>
  </gallery>
</images>
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Purgar#21
Benutzerbild von Purgar
Beiträge: 151
Registriert: May 2010

Themenautor/in

03.01.2011, 11:33

ja genau, ausser das die id natürlich auch fortlaufend ist..also fängt bei id = "1" an..aber ich denke mal, dass du das auch so meintest, oder?
RustyCake#22
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

03.01.2011, 12:35

Vorsicht Script ;-)
Man hätte das evtl. auch alles in einem Array verschachteln können, aber das ist meiner Ansicht nach zu unübersichtlich.
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var pictureArray:Array = [];
var idTitelArray:Array = [];
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener (Event.COMPLETE, LoadXML);
var xmlPath:String = "image.xml";
xmlLoader.load (new URLRequest(xmlPath));
function LoadXML (e:Event):void
{
     xmlData = new XML(e.target.data);
     for (var i:uint =0; i<xmlData.gallery.length(); i++)
     {
        pictureArray[i] = [];
        idTitelArray[i] = [];
        idTitelArray[i] = [xmlData.gallery[i]. @ id,xmlData.gallery[i]. @ titel];
        for (var j:uint =0; j<xmlData.gallery[i].image.length(); j++)
        {
           pictureArray[i][j] = xmlData.gallery[i].image[j]. @ src;
        }
     }
     trace(pictureArray[0]);
     trace(pictureArray[1]);
     trace (idTitelArray[0]);
     trace (idTitelArray[1]);
}
/*
<?xml version="1.0" encoding="iso-8859-1"?>
<images>
  <gallery id="1" titel="Weihnachten">
    <image src="images/tn/10.jpg"/>
    <image src="images/tn/11.jpg"/>
    <image src="images/tn/12.jpg"/>
  </gallery>
  <gallery id="2"titel="Neujahr">
    <image src="images/tn/13.jpg"/>
    <image src="images/tn/14.jpg"/>
    <image src="images/tn/15.jpg"/>
   <image src="images/tn/16.jpg"/>
    <image src="images/tn/17.jpg"/>
    <image src="images/tn/18.jpg"/>
  </gallery>
</images>
*/

Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Purgar#23
Benutzerbild von Purgar
Beiträge: 151
Registriert: May 2010

Themenautor/in

03.01.2011, 13:34

oh danke, das sieht schon echt gut aus und ich kann es sogar etwas nachvollziehen.
so nun soll ja noch bei klick auf dem jeweiligen titel, die jeweilgen images angezeigt werden..sprich, irgendwie so, dass wenn klick auf titel dann zeige alle bilder der id= 01 oder so?
RustyCake#24
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

03.01.2011, 14:37

Nochmals Script-Stress ;-)
Die id von der xml braucht man eigentlcih nicht!
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//-----------------------------------------------------------------------------------------//
import flash.display.MovieClip;
import flash.events.MouseEvent;
//-----------------------------------------------------------------------------------------//
var pictureArray:Array = [];
var idTitelArray:Array = [];
var btnArray:Array = [];
//-----------------------------------------------------------------------------------------//
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener (Event.COMPLETE, LoadXML);
var xmlPath:String = "image.xml";
xmlLoader.load (new URLRequest(xmlPath));
//-----------------------------------------------------------------------------------------//
function LoadXML (e:Event):void
{
     xmlData = new XML(e.target.data);
     for (var i:uint =0; i<xmlData.gallery.length(); i++)
     {
        pictureArray[i] = [];
        idTitelArray[i] = [];
        idTitelArray[i] = [xmlData.gallery[i]. @ id,xmlData.gallery[i]. @ titel];
        for (var j:uint =0; j<xmlData.gallery[i].image.length(); j++)
        {
           pictureArray[i][j] = xmlData.gallery[i].image[j]. @ src;
        }
     }
     createButtons ();
}
//-----------------------------------------------------------------------------------------//
function createButtons ():void
{
     for (var i:uint =0; i< idTitelArray.length; i++)
     {
        var thisOne:MovieClip = new MovieClip();
        addChild (thisOne);
        btnArray[i] = thisOne;
        //-----------------------------------------------------------------------------------//
      var gallery_text:TextField = new TextField();
        gallery_text.text = idTitelArray[i][1];
        gallery_text.textColor = 0x009933;
        gallery_text.selectable = false;
        gallery_text.wordWrap = true;
        btnArray[i].addChild (gallery_text);
        //-----------------------------------------------------------------------------------//
      btnArray[i].x = (80*i)+30;
        btnArray[i].y = 30;
        btnArray[i].ID = i;
        btnArray[i].addEventListener (MouseEvent.CLICK, clickFunky);
     }
}
//-----------------------------------------------------------------------------------------//
function clickFunky (e:MouseEvent):void
{
     for (var i:uint =0; i<pictureArray[e.currentTarget.ID].length; i++)
     {
        trace (pictureArray[e.currentTarget.ID][i]);
     }
}
//-----------------------------------------------------------------------------------------//
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Purgar#25
Benutzerbild von Purgar
Beiträge: 151
Registriert: May 2010

Themenautor/in

03.01.2011, 15:16

hey danke erstmal für die Mühe. ich werd das gleich mal ausprobieren und mir das Script genau anschauen, damit ich das auch verstehen kann ;-)...aber du hast mir in der hinsicht echt weitergeholfen
Purgar#26
Benutzerbild von Purgar
Beiträge: 151
Registriert: May 2010

Themenautor/in

03.01.2011, 16:24

ja das klappt so. Vielen Dank
Purgar#27
Benutzerbild von Purgar
Beiträge: 151
Registriert: May 2010

Themenautor/in

04.01.2011, 16:34

ach man, so ein mist, ich dachte ich wäre fertig hier und bräuchte keine Hilfe mehr, aber ich brauch sie wohl doch nochmal...
also das einladen klappt super..so wie ich es mir vorgestellt habe..nur, jetzt habe ich auch noch bilder in der originalgröße eingeladen, weil das andere waren nur thumbnails..sobald man auf die thumbnails klickt, soll das große bild davon auch erscheinen...das klappt auch...aaaaber..ich will auch noch, dass man auf einem vor und züruck-button die großen Bilder durchklicken kann..dabei soll aber auch darauf geachtet werden, welches bild gerade groß angezeigt wird, denn es kann ja sein, dass jemand in den thumbnails das vierte bild klickt und dann mit dem vor button weiter will und dann soll er ja zum 6. bild kommen...und das schaff ich irgendwie nicht...ich kann beides nur unabhängig voneinander bedienen.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
function clickFunky (e:MouseEvent):void
{
       for (var i:uint =0; i<pictureArray[e.currentTarget.ID].length; i++)
       {
        
         var thisOne:MovieClip = new MovieClip();
         var thisThumb:Sprite = new Sprite();
         var blackBox:Sprite = new Sprite();
        blackBox.graphics.beginFill(0xFFFFFF);
        blackBox.graphics.drawRect( -1, -1, 142, 107);
        blackBox.alpha = thumbFadeOut;
        thisOne.addChild(blackBox);
        thisOne.blackBox = blackBox;
        //thisOne.y = 200;
      thisOne.x = thisOne.myx = (140 + padding) * i;
        
        thisOne.itemNum = i;
        thisOne.src = pictureArray[e.currentTarget.ID][i][0];
        thisOne.link = pictureArray[e.currentTarget.ID][i][1];
        
         var ldr:Loader = new Loader();
        var urlReq:URLRequest = new URLRequest(thisOne.src);
        
        ldr.load(urlReq);
        //trace("gallery" + gallery);
      thisThumb.addChild(ldr);
        thisOne.addChild(thisThumb);
        thisOne.buttonMode = true;
        //assign event listeners for Loader
      ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
        ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
        thisOne.addEventListener(MouseEvent.MOUSE_OVER, overScrollerItem);
        thisOne.addEventListener(MouseEvent.MOUSE_OUT, outScrollerItem);
        
        
         scroller.y = 400;
        scroller.addChild(thisOne);
        scroller.alpha = 0.7;
        scroller.scaleX = 0.6;
        scroller.scaleY = 0.6;
        
        //scroller.visible = false;
      //add gallery title
      scroller.addEventListener(Event.ENTER_FRAME, moveScrollerThumbs);
        //scroller.visible = false;
        trace (pictureArray[e.currentTarget.ID][i]);
     thisOne.addEventListener(MouseEvent.CLICK, ladeBild);
      
     
       }
      ladeBild2(1);
     
     }
   function ladeBild2(nr:int) {
        if (nr > 0 && nr<= bilder.length) {
           var loader:Loader = new Loader();
           loader.load(new URLRequest(bilder[nr-1].link));
           large.addChild(loader);
           
           
     aktuelle_nummer = nr;
        }
     }

   function ladeBild(e:MouseEvent) {
        
     urlRequest= new URLRequest(e.currentTarget.link);
     ldr2.load(urlRequest);
     large.addChild(ldr2);
  forward.addEventListener(MouseEvent.CLICK, weiter);
  function weiter(evt:Event):void {
     
 
     ladeBild2(aktuelle_nummer + 1);
     
     }      
        
     }


forward ist hierbei ein MovieClip, den ich während der laufzeit lade...
RustyCake#28
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

04.01.2011, 17:40

Sind die großen Bilder auch in der XML drinne?
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Purgar#29
Benutzerbild von Purgar
Beiträge: 151
Registriert: May 2010

Themenautor/in

04.01.2011, 18:03

jo, die sind jetzt auch in der xml...
das sieht so aus
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
- <images>
- <gallery id="01" titel="Weihnachten">
  <image src="images/tn/1.jpg" url="images/1.jpg" /> 
  <image src="images/tn/2.jpg" url="images/2.jpg" /> 
  <image src="images/tn/3.jpg" url="images/3.jpg" /> 
  <image src="images/tn/4.jpg" url="images/4.jpg" /> 
  <image src="images/tn/5.jpg" url="images/5.jpg" /> 
  <image src="images/tn/6.jpg" url="images/6.jpg" /> 
  </gallery>
- <gallery id="02" titel="Neujahr">
  <image src="images/tn/7.jpg" url="images/7.jpg" /> 
  <image src="images/tn/8.jpg" url="images/8.jpg" /> 
  <image src="images/tn/9.jpg" url="images/9.jpg" /> 
  <image src="images/tn/10.jpg" url="images/10.jpg" /> 
  <image src="images/tn/11.jpg" url="images/11.jpg" /> 
  <image src="images/tn/12.jpg" url="images/12.jpg" /> 
  </gallery>
  </images>


src sind die kleinen Bilder und url sind die großen
RustyCake#30
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

04.01.2011, 19:45

Das hir solltest Du nicht verwenden.
ActionScript:
1
2
thisOne.src = pictureArray[e.currentTarget.ID][i][0];
        thisOne.link = pictureArray[e.currentTarget.ID][i][1];

Sondern.
ActionScript:
1thisOne.sub_ID = i;

Darüber kannst Du Dir Deinen Load-Content aus dem Array holen.
Zudem kannst Du die Click-ID in einer globalen Variable speichern, die auch über Deine vor/zurück-Buttons abrufen könntest.
var clickVar:uint = 0; Das wäre die startVar.
Also clickVar++; für vor_btn oder clickVar --; für zurück_btn.
Über diese Variable kannst Du auch auf die Array's zugreifen.
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Purgar#31
Benutzerbild von Purgar
Beiträge: 151
Registriert: May 2010

Themenautor/in

04.01.2011, 20:07

danke erstmal für die zeit, theoretisch ist mir das jetzt auch klar..aber die globale CLICK ID fülle ich mit welchen Werten? mit diesen hier
ActionScript:
1thisOne.sub_ID = i;
, oder wie? oh man, ich muss das echt noch lernen.

AntwortenRegistrieren Seite1 2 3 4 5 6 7  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Ein PC und drei Monitore [Flash CS5] 10.09.2017 - Herzenslicht
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de