+ Antworten
Ergebnis 1 bis 3 von 3

Thema: [AS3] Wabbergalerie mit XML

  1. #1
    TP-Moderator Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Avatar von Wanderratte
    Registriert seit
    Mar 2002
    Beiträge
    5.487

    [AS3] Wabbergalerie mit XML

    Hallo Zusammen,

    ich habe die Wabbergalerie auf den neusten Stand gebracht und mit einer XML-Versehen, wo man die wichtigsten Einstellungen vornehmen kann.
    pText wird in dieser Version noch nicht gebraucht.
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <galerie>
        <grundeinstellung>
            <!-- Anzahl der Bilder die Nebeneinander angezeigt werden sollen -->
            <anzReihe>10</anzReihe>
            <!-- thumb hoehe/weite -->
            <thumbWidth>75</thumbWidth>
            <thumbHeight>50</thumbHeight>
            <!-- abstand zwischen den einzelnen Thumbs -->
            <thumbsAbstand>5</thumbsAbstand>
            <!-- farbe für den Thumbhintergrund -->
            <thBackColor>0x999999</thBackColor>
            <thLineStyle>0x333333</thLineStyle>
            <!-- Ausrichtung der Thumbs top.left,down,right -->
            <thumbsPos>top</thumbsPos>
            <!-- abstand des großen Bildes von den Thumbs -->
            <abStandBig>10</abStandBig>
            <xPos>10</xPos>
            <yPos>10</yPos>
        </grundeinstellung>
        <picGalerie>
            <pics_0>
                <pUrl>mais_16_06_2010_00.jpg</pUrl>
                <pText>text 1</pText>
            </pics_0>
            <pics_1>
                <pUrl>mais_16_06_2010_01.jpg</pUrl>
                <pText>text 2</pText>
            </pics_1>
            <pics_2>
                <pUrl>mais_16_06_2010_02.jpg</pUrl>
                <pText>text 3</pText>
            </pics_2>
            <pics_3>
                <pUrl>mais_16_06_2010_03.jpg</pUrl>
                <pText>text 3</pText>
            </pics_3>
            <pics_4>
                <pUrl>mais_16_06_2010_07.jpg</pUrl>
                <pText>text 5</pText>
            </pics_4>
            <pics_5>
                <pUrl>mais_16_06_2010_05.jpg</pUrl>
                <pText>text 6</pText>
            </pics_5>
            <pics_6>
                <pUrl>mais_16_06_2010_10.jpg</pUrl>
                <pText>text 7</pText>
            </pics_6>
        </picGalerie>
    </galerie>
    Die Klasse
    Code:
    package {
        import flash.display.MovieClip;
        import flash.display.Shape;
        import flash.display.Sprite;
        import flash.display.Graphics;
        import flash.display.DisplayObject;
        import flash.display.LoaderInfo;
        import flash.display.Loader;
        import flash.events.*;
        import flash.net.*;
        import flash.xml.*;
        import flash.net.URLRequest;
        import fl.transitions.TransitionManager;
        import fl.transitions.Tween;
        import fl.transitions.easing.*;
        import fl.transitions.TweenEvent;
        import fl.transitions.easing.Regular;
        public class loadGalerie extends Sprite {
            //Deklaration der Variablen
            private var myXML:XML = new XML();
            private var anzReihe:uint;
            private var picWidth:uint;
            private var picHeight:uint;
            private var thumbWidth:uint;
            private var thumbHeight:uint;
            private var thBackColor:uint;
            private var thLineStyle:uint;
            private var zaehler:uint = 0;
            private var xPos:uint;
            private var yPos:uint;
            private var pictLdr:URLLoader;
            private var oldPic:Sprite;
            private var newPic:Sprite;
            private var zReihe:uint = 0;
            private var thumbsPos:String;
            private var thumbsAbstand:uint;
            private var conPosX:uint;
            private var conPosY:uint;
            private var abStandBig:uint;
            //Container für die großen Bilder
            private var bigCon:Sprite = new Sprite();
            //Öffentlich Function: Startet die Galerie
            public function loadGalerie(url:String) {
                addChild(bigCon);
                //instanziiert den URLLoader
                var loader:URLLoader = new URLLoader();
                //weist die Listerner zu;
                configureListeners(loader);
                //instanziiert den URLRequest
                var request:URLRequest = new URLRequest(url);
                try {
                    loader.load(request);
                } catch (error:Error) {
                    trace("Unable to load requested document.");
                }
            }
            //Configuriert die Listener. für den XML-Aufruf
            private function configureListeners(dispatcher:IEventDispatcher):void {
                dispatcher.addEventListener(Event.COMPLETE, completeHandler);
                dispatcher.addEventListener(Event.OPEN, openHandler);
                dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
                dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
                dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
                dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            }
            //XML Geladen
            private function completeHandler(event:Event):void {
                var loader:URLLoader = URLLoader(event.target);
                parseXML(loader.data);
            }
            private function openHandler(event:Event):void {
                trace("openHandler: " + event);
            }
    
            private function progressHandler(event:ProgressEvent):void {
                trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
            }
    
            private function securityErrorHandler(event:SecurityErrorEvent):void {
                trace("securityErrorHandler: " + event);
            }
    
            private function httpStatusHandler(event:HTTPStatusEvent):void {
                trace("httpStatusHandler: " + event);
            }
    
            private function ioErrorHandler(event:IOErrorEvent):void {
                trace("ioErrorHandler: " + event);
            }
            //verarbeitet die XML
            private function parseXML(str:String):void {
                myXML.ignoreWhitespace = true;
                myXML = XML(str);
                //durchläuft die XML (in dem Falle alles was im Knoten: grundeinstellung ist)
                for each (var child:XML in myXML.children()[0].children()) {
                    switch (child.name().toString()) {
                        case "anzReihe" :
                            anzReihe = parseFloat(child);
                            break;
                        case "picWidth" :
                            picWidth= parseFloat(child);
                            break;
                        case "picHeight" :
                            picHeight = parseFloat(child);
                            break;
                        case "thumbWidth" :
                            thumbWidth= parseFloat(child);
                            break;
                        case "thumbHeight" :
                            thumbHeight = parseFloat(child);
                            break;
                        case "thBackColor" :
                            trace(child.name() + " : " +child);
                            thBackColor = parseInt(child);
                            break;
                        case "thLineStyle" :
                            trace(child.name() + " : " +child);
                            thLineStyle = parseInt(child);
                            break;
                        case "xPos" :
                            xPos = parseInt(child);
                            break;
                        case "yPos" :
                            yPos = parseInt(child);
                            break;
                        case "thumbsPos" :
                            thumbsPos = child.toString();
                            break;
                        case "thumbsAbstand" :
                            thumbsAbstand = parseInt(child);
                            break;
                        case "abStandBig" :
                            abStandBig = parseInt(child);
                            break;
                        default :
                            trace("Case nicht vorhanden" + child.name());
                            break;
                    }
                }
                ladeThumbs();
            }
            //Function um die Thumbs zu erstellen und zu laden
            private function ladeThumbs():void {
                var __mc:MovieClip = new MovieClip();
                addChild(__mc);
                //Durchläuft den Knoten picGalerie
                for each (var child:XML in myXML.children()[1].children()) {
                    var target:MovieClip = new MovieClip();
                    target.addChild(zeichneBackGround());
                    target.name = child.name().toString();
                    __mc.addChild(target);
                    __mc.x = xPos;
                    if (zaehler == anzReihe) {
                        zaehler = 0;
                        zReihe++;
                    }
                    target.x = thumbWidth * zaehler + thumbsAbstand * zaehler;
                    target.y = yPos + thumbHeight * zReihe + thumbsAbstand * zReihe;
                    ladePics(target,child.pUrl,"thumb");
                    target.pUrl = child.pUrl;
                    target.pText = child.pText;
                    zaehler++;
                }
                //Positioniert die Thumbs, je nach Angaben in der XML
                switch (thumbsPos) {
                    case "top" :
                        trace("top");
                        __mc.x = thumbWidth/2+xPos;
                        __mc.y = thumbHeight/2+yPos;
                        conPosX = xPos;
                        conPosY = __mc.y + __mc.height + abStandBig;
                        break;
                    case "left" :
                        __mc.x = thumbWidth/2+xPos;
                        __mc.y = thumbHeight/2+yPos;
                        conPosX = __mc.x + __mc.width + abStandBig-thumbWidth/2;
                        conPosY = yPos;
                        break;
                    case "right" :
                        __mc.x = stage.stageWidth - xPos-__mc.width;
                        __mc.y = thumbHeight/2+yPos;
                        conPosX = __mc.x - abStandBig-thumbWidth/2;
                        conPosY = yPos;
                        break;
                    case "down" :
                        __mc.x = thumbWidth/2+xPos;
                        __mc.y = stage.stageHeight-yPos-__mc.height;
                        conPosX = xPos ;
                        conPosY = __mc.y-abStandBig-thumbHeight/4;
                        break;
                }
                //Aufruf zum ersten Bild laden.
                var con = __mc.getChildAt(0);
                loadBigPic(con.pUrl);
            }
            private function ladePics(sprite:Sprite,url:String,art:String):void {
                var loader:Loader = new Loader();
                var request:URLRequest = new URLRequest(url);
                loader.load(request);
                sprite.addChild(loader);
                switch (art) {
                    case "thumb" :
                        loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
                        loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
                        break;
                    case "big" :
                        loader.contentLoaderInfo.addEventListener(Event.INIT, initBigPicHandler);
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
                        //sprite.x = conPosition;
    
                        bigCon.addChildAt(sprite,0);
                        break;
                }
            }
            private function _onRelease(event:MouseEvent):void {
                trace(event.target.parent.name);
                loadBigPic(event.target.parent.pUrl);
    
            }
            private function _onRollOver(event:MouseEvent):void {
                var target:DisplayObject = event.target.parent.parent.getChildByName(event.target.parent.name);
                var ebene:uint = event.target.parent.parent.getChildIndex(target);
                event.target.parent.parent.swapChildrenAt(ebene, event.target.parent.parent.numChildren - 1);
                var myXTween:Tween = new Tween(event.target.parent, "scaleX", Elastic.easeOut, 1, 1.2, 1, true);
                var myYTween:Tween = new Tween(event.target.parent, "scaleY", Elastic.easeOut, 1, 1.2, 1, true);
            }
            private function _onRollOut(event:MouseEvent):void {
                var myXTween:Tween = new Tween(event.target.parent, "scaleX", Elastic.easeOut,event.target.parent.scaleX, 1, 1, true);
                var myYTween:Tween = new Tween(event.target.parent, "scaleY", Elastic.easeOut,event.target.parent.scaleY, 1, 1, true);
            }
            private function loadBigPic(str:String):void {
                var container:Sprite = new Sprite();
                ladePics(container,str,"big");
            }
            private function initBigPicHandler(event:Event):void {
                var loader:Loader = Loader(event.target.loader);
                var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo);
                trace(loader.content.width + " Weite");
                switch (thumbsPos) {
                    case "top" :
                        trace("top");
                        loader.x = conPosX;
                        loader.y = conPosY;
                        break;
                    case "left" :
                        loader.x = conPosX;
                        loader.y = conPosY;
                        break;
                    case "right" :
                        loader.x = conPosX-loader.content.width;
                        loader.y = conPosY;
                        break;
                    case "down" :
                        loader.x = conPosX;
                        loader.y = conPosY-loader.content.height;
                        break;
                }
            }
            private function kill(e:TweenEvent):void {
                for(var i:uint = 1; i < bigCon.numChildren;i++){;
                trace("kill");
                bigCon.removeChildAt(i);
            }
        }
        private function initHandler(event:Event):void {
            var loader:Loader = Loader(event.target.loader);
            var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo);
            loader.content.scaleX = loader.content.scaleY = skaliereThumbs(loader.content.width,loader.content.height);
            loader.content.x = position(loader.content.width,thumbWidth);
            loader.content.y = position(loader.content.height,thumbHeight);
            loader.addEventListener(MouseEvent.MOUSE_UP, _onRelease);
            loader.addEventListener(MouseEvent.MOUSE_OVER,_onRollOver);
            loader.addEventListener(MouseEvent.MOUSE_OUT,_onRollOut);
            loader.x = -thumbWidth/2;
            loader.y = -thumbHeight/2;
            //trace("initHandler: loaderURL=" + info.loaderURL + " url=" + info.url + " weite: " + info.width);
        }
        private function skaliereThumbs(w:Number, h:Number) {
            var max = Math.max(w,h);
            var erg = Math.floor(100/max*(thumbWidth-1));
            return erg / 100;
        }
        private function position(ist:Number,target:Number) {
            return target / 2 - ist / 2;
        }
        private function picErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
        private function imgLoaded(event:Event):void {
            var myYTween:Tween = new Tween(event.target.content , "alpha", Strong.easeOut,0, 1, 2, true);
            if (bigCon.numChildren > 1) {
                var myTween:Tween = new Tween(bigCon.getChildAt(1)  , "alpha", Strong.easeOut,1, 0, 2, true);
                myTween.addEventListener(TweenEvent.MOTION_FINISH, kill);
            }
        }
        private function zeichneBackGround():Shape {
            var thumb:Shape = new Shape();
            thumb.graphics.beginFill(thBackColor);
            thumb.graphics.lineStyle(1, thLineStyle);
            thumb.graphics.drawRect(0, 0, thumbWidth, thumbHeight);
            thumb.graphics.endFill();
            thumb.x = -thumb.width/2;
            thumb.y = -thumb.height/2;
            return thumb;
        }
    
    }
    }
    und dieser Code kommt auf die Zeitleiste
    Code:
    import loadGalerie;
    var galerie:loadGalerie = new loadGalerie("xml/galerie.xml");
    addChild(galerie);
    ich Wünsche euch viel Spaß damit und noch eins F1 in Flash ist eurer Freund
    Fragen zu der Galerie könnt ihr hier stellen: klick
    Gruß

    Wanderratte
    Gebildet ist,
    wer weiß,
    wo er findet,
    was er nicht weiß.

    4bugs
    Home
    Amazon Wunschzettel

  2. #2
    TP-Moderator Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Avatar von Wanderratte
    Registriert seit
    Mar 2002
    Beiträge
    5.487
    Hallo,

    ich habe jetzt das Script ein wenig Erweitert naja besser gesagt, ich habe ein Menü für verschiedene Galerien dazu programmiert.
    Ansehen könnt ihr es euch hier: klick

    Die Classe für das Menü kann für andere Zwecke erweitert werden, also einfach genau den Code ansehen
    In der Fla erstellt ihr einfach einen mc als Button und gebt ihn den Verknüpfungsnamen: menue_mc
    Danach klickt ihr einmal in die Bühne rein und geht dann auf Eigenschaften.
    Dort gebt ihr im Feld Dokumentenklasse startClass ein und dann sollte es funktionieren.
    Das Galeriescript musste ich ein wenig anpassen, also nehmt dieses:
    loadGalerie.as
    PHP-Code:
    package {
        
    import flash.display.MovieClip;
        
    import flash.display.Shape;
        
    import flash.display.Sprite;
        
    import flash.display.Graphics;
        
    import flash.display.DisplayObject;
        
    import flash.display.LoaderInfo;
        
    import flash.display.Loader;
        
    import flash.events.*;
        
    import flash.net.*;
        
    import flash.xml.*;
        
    import flash.net.URLRequest;
        
    import fl.transitions.TransitionManager;
        
    import fl.transitions.Tween;
        
    import fl.transitions.easing.*;
        
    import fl.transitions.TweenEvent;
        
    import fl.transitions.easing.Regular;
        public class 
    loadGalerie extends Sprite {
            
    //Deklaration der Variablen
            
    private var myXML:XML=new XML;
            private var 
    anzReihe:uint;
            private var 
    maxHoehe:uint;
            private var 
    maxBreite:uint;
            private var 
    thumbWidth:uint;
            private var 
    thumbHeight:uint;
            private var 
    thBackColor:uint;
            private var 
    thLineStyle:uint;
            private var 
    zaehler:uint=0;
            private var 
    xPos:uint;
            private var 
    yPos:uint;
            private var 
    pictLdr:URLLoader;
            private var 
    oldPic:Sprite;
            private var 
    newPic:Sprite;
            private var 
    zReihe:uint=0;
            private var 
    thumbsPos:String;
            private var 
    thumbsAbstand:uint;
            private var 
    conPosX:uint;
            private var 
    conPosY:uint;
            private var 
    abStandBig:uint;
            
    //Container für die großen Bilder
            
    private var bigCon:Sprite=new Sprite;
            
    //Öffentlich Function: Startet die Galerie
            
    public function loadGalerie(url:String) {
                
    addChild(bigCon);
                
    //instanziiert den URLLoader
                
    var loader:URLLoader=new URLLoader;
                
    //weist die Listerner zu;
                
    configureListeners(loader);
                
    //instanziiert den URLRequest
                
    var request:URLRequest=new URLRequest(url);
                try {
                    
    loader.load(request);
                } catch (
    error:Error) {
                    
    trace("Unable to load requested document.");
                }
            }
            
    //Configuriert die Listener. für den XML-Aufruf
            
    private function configureListeners(dispatcher:IEventDispatcher):void {
                
    dispatcher.addEventListener(Event.COMPLETE,completeHandler);
                
    dispatcher.addEventListener(Event.OPEN,openHandler);
                
    dispatcher.addEventListener(ProgressEvent.PROGRESS,progressHandler);
                
    dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler);
                
    dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS,httpStatusHandler);
                
    dispatcher.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
            }
            
    //XML Geladen
            
    private function completeHandler(event:Event):void {
                var 
    loader:URLLoader=URLLoader(event.target);
                
    parseXML(loader.data);
            }
            private function 
    openHandler(event:Event):void {
                
    trace("openHandler: " event);
            }
            private function 
    progressHandler(event:ProgressEvent):void {
                
    trace("progressHandler loaded:" event.bytesLoaded " total: " event.bytesTotal);
            }
            private function 
    securityErrorHandler(event:SecurityErrorEvent):void {
                
    trace("securityErrorHandler: " event);
            }
            private function 
    httpStatusHandler(event:HTTPStatusEvent):void {
                
    trace("httpStatusHandler: " event);
            }
            private function 
    ioErrorHandler(event:IOErrorEvent):void {
                
    trace("ioErrorHandler: " event);
            }
            
    //verarbeitet die XML
            
    private function parseXML(str:String):void {
                
    myXML.ignoreWhitespace=true;
                
    myXML=XML(str);
                
    //durchläuft die XML (in dem Falle alles was im Knoten: grundeinstellung ist)
                
    for each (var child:XML in myXML.children()[0].children()) {
                    switch (
    child.name().toString()) {
                        case 
    "anzReihe" :
                            
    anzReihe=parseFloat(child);
                            break;
                        case 
    "maxHoehe" :
                            
    maxHoehe=parseFloat(child);
                            break;
                        case 
    "maxBreite" :
                            
    maxBreite=parseFloat(child);
                            break;
                        case 
    "thumbWidth" :
                            
    thumbWidth=parseFloat(child);
                            break;
                        case 
    "thumbHeight" :
                            
    thumbHeight=parseFloat(child);
                            break;
                        case 
    "thBackColor" :
                            
                            
    thBackColor=parseInt(child);
                            break;
                        case 
    "thLineStyle" :
                            
                            
    thLineStyle=parseInt(child);
                            break;
                        case 
    "xPos" :
                            
    xPos=parseInt(child);
                            break;
                        case 
    "yPos" :
                            
    yPos=parseInt(child);
                            break;
                        case 
    "thumbsPos" :
                            
    thumbsPos=child.toString();
                            break;
                        case 
    "thumbsAbstand" :
                            
    thumbsAbstand=parseInt(child);
                            break;
                        case 
    "abStandBig" :
                            
    abStandBig=parseInt(child);
                            break;
                        default :
                            
    trace("Case nicht vorhanden" child.name());
                            break;
                    }
                }
                
    ladeThumbs();
            }
            
    //Function um die Thumbs zu erstellen und zu laden
            
    private function ladeThumbs():void {
                var 
    __mc:MovieClip=new MovieClip;
                
    addChild(__mc);
                
    //__mc.x=xPos;
                //Durchläuft den Knoten picGalerie
                
    for each (var child:XML in myXML.children()[1].children()) {
                    var 
    target:MovieClip=new MovieClip;
                    
    target.addChild(zeichneBackGround());
                    
    target.name=child.name().toString();
                    
    __mc.addChild(target);

                    if (
    zaehler == anzReihe) {
                        
    zaehler=0;
                        
    zReihe++;
                    }
                    
    target.x=thumbWidth zaehler thumbsAbstand zaehler;
                    
    target.y=yPos thumbHeight zReihe thumbsAbstand zReihe;
                    
    ladePics(target,child.pUrl,"thumb");
                    
    target.pUrl=child.pUrl;
                    
    target.pText=child.pText;
                    
    zaehler++;
                }
                
    //Positioniert die Thumbs, je nach Angaben in der XML
                
    switch (thumbsPos) {
                    case 
    "top" :
                        
    __mc.x=thumbWidth ;
                        
    __mc.y=thumbHeight ;
                        
    conPosX=xPos;
                        
    conPosY=__mc.height abStandBig;
                        break;
                    case 
    "left" :
                        
    __mc.x=thumbWidth ;
                        
    __mc.y=thumbHeight ;
                        
    conPosX=__mc.__mc.width abStandBig thumbWidth 2;
                        
    conPosY=yPos;
                        break;
                    case 
    "right" :
                        
    __mc.x=maxBreite+thumbWidth/abStandBig;
                        
    __mc.y=thumbHeight yPos;
                        
    conPosX=__mc.x;//- abStandBig - thumbWidth / 2;
                        
    conPosY=yPos;
                        break;
                    case 
    "down" :
                        
    __mc.x=thumbWidth xPos;
                        
    __mc.y=maxHoehe abStandBig +thumbHeight;
                        
    conPosX=xPos;
                        
    conPosY=__mc.thumbHeight;
                        break;
                }
                
    //Aufruf zum ersten Bild laden.
                
    var con=__mc.getChildAt(0);
                
    loadBigPic(con.pUrl);
            }
            private function 
    ladePics(sprite:Sprite,url:String,art:String):void {
                var 
    loader:Loader=new Loader;
                var 
    request:URLRequest=new URLRequest(url);
                
    loader.load(request);
                
    sprite.addChild(loader);
                switch (
    art) {
                    case 
    "thumb" :
                        
    loader.contentLoaderInfo.addEventListener(Event.INIT,initHandler);
                        
    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
                        break;
                    case 
    "big" :
                        
    loader.contentLoaderInfo.addEventListener(Event.INIT,initBigPicHandler);
                        
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE,imgLoaded);
                        
    //sprite.x = conPosition;

                        
    bigCon.addChildAt(sprite,0);
                        break;
                }
            }
            private function 
    _onRelease(event:MouseEvent):void {
                
    loadBigPic(event.target.parent.pUrl);

            }
            private function 
    _onRollOver(event:MouseEvent):void {
                var 
    target:DisplayObject=event.target.parent.parent.getChildByName(event.target.parent.name);
                var 
    ebene:uint=event.target.parent.parent.getChildIndex(target);
                
    event.target.parent.parent.swapChildrenAt(ebene,event.target.parent.parent.numChildren 1);
                var 
    myXTween:Tween=new Tween(event.target.parent,"scaleX",Elastic.easeOut,1,1.2,1,true);
                var 
    myYTween:Tween=new Tween(event.target.parent,"scaleY",Elastic.easeOut,1,1.2,1,true);
            }
            private function 
    _onRollOut(event:MouseEvent):void {
                var 
    myXTween:Tween=new Tween(event.target.parent,"scaleX",Elastic.easeOut,event.target.parent.scaleX,1,1,true);
                var 
    myYTween:Tween=new Tween(event.target.parent,"scaleY",Elastic.easeOut,event.target.parent.scaleY,1,1,true);
            }
            private function 
    loadBigPic(str:String):void {
                var 
    container:Sprite=new Sprite;
                
    ladePics(container,str,"big");
            }
            private function 
    initBigPicHandler(event:Event):void {
                var 
    loader:Loader=Loader(event.target.loader);
                var 
    info:LoaderInfo=LoaderInfo(loader.contentLoaderInfo);
                switch (
    thumbsPos) {
                    case 
    "top" :
                        
    loader.x=(maxBreite loader.content.width)/2;
                        
    loader.y=conPosY ;
                        break;
                    case 
    "left" :
                        
    loader.x=conPosX + (maxBreite loader.content.width)/2;
                        
    loader.y=conPosY;
                        break;
                    case 
    "right" :
                        
    loader.x=(maxBreite loader.content.width)/2;
                        
    loader.y=conPosY;
                        break;
                    case 
    "down" :
                        
    loader.x=(maxBreite loader.content.width)/2;
                        
    //loader.y=conPosY-loader.content.height;
                        
    break;
                }
            }
            private function 
    kill(e:TweenEvent):void {
                for(var 
    i:uint 1bigCon.numChildren;i++){;
                
    bigCon.removeChildAt(i);
            }
        }
        private function 
    initHandler(event:Event):void {
            var 
    loader:Loader=Loader(event.target.loader);
            var 
    info:LoaderInfo=LoaderInfo(loader.contentLoaderInfo);
            
    loader.content.scaleX=loader.content.scaleY=skaliereThumbs(loader.content.width,loader.content.height);
            
    loader.content.x=position(loader.content.width,thumbWidth);
            
    loader.content.y=position(loader.content.height,thumbHeight);
            
    loader.addEventListener(MouseEvent.MOUSE_UP,_onRelease);
            
    loader.addEventListener(MouseEvent.MOUSE_OVER,_onRollOver);
            
    loader.addEventListener(MouseEvent.MOUSE_OUT,_onRollOut);
            
    loader.x=- thumbWidth 2;
            
    loader.y=- thumbHeight 2;
        }
        private function 
    skaliereThumbs(w:Number,h:Number) {
            var 
    max=Math.max(w,h);
            var 
    erg=Math.floor(100 max thumbWidth 1);
            return 
    erg 100;
        }
        private function 
    position(ist:Number,target:Number) {
            return 
    target ist 2;
        }
        private function 
    picErrorHandler(event:IOErrorEvent):void {
            
    trace("ioErrorHandler: " event);
        }
        private function 
    imgLoaded(event:Event):void {
            var 
    myYTween:Tween=new Tween(event.target.content,"alpha",Strong.easeOut,0,1,2,true);
            if (
    bigCon.numChildren 1) {
                var 
    myTween:Tween=new Tween(bigCon.getChildAt(1),"alpha",Strong.easeOut,1,0,2,true);
                
    myTween.addEventListener(TweenEvent.MOTION_FINISH,kill);
            }
        }
        private function 
    zeichneBackGround():Shape {
            var 
    thumb:Shape=new Shape;
            
    thumb.graphics.beginFill(thBackColor);
            
    thumb.graphics.lineStyle(1,thLineStyle);
            
    thumb.graphics.drawRect(0,0,thumbWidth,thumbHeight);
            
    thumb.graphics.endFill();
            
    thumb.x=- thumb.width 2;
            
    thumb.y=- thumb.height 2;
            return 
    thumb;
        }
    }

    Klasse für das Menü
    menueExample.as
    PHP-Code:
    package {
        
    import loadGalerie;
        
    import flash.display.*;
        
    import flash.display.Sprite;
        
    import flash.events.MouseEvent;
        
    import flash.display.MovieClip;
        
    import flash.events.Event;
        public class 
    menueExample extends MovieClip {
            private var 
    __xml:XML;
            private var 
    menueMc:MovieClip;
            private static  var 
    abStand:Number;
            private static  var 
    aktivBtn;
            private static  var 
    btnArray:Array = new Array();
            private var 
    galerie:loadGalerie;
            private static  var 
    con:MovieClip;
            public function 
    AttachMovie(str:String) {
                var 
    myMC:MovieClip = new point_mc;
                
    myMC.name str;
                
    myMC.inhalt_txt.text __xml.titel;
                
    myMC.setPosition(myMC.width);
                
    myMC.target __xml.func.toString();
                
    myMC.xmlUrl __xml.xmlURL;
                
    btnArray.push(myMC);
                
    addChild(myMC);
                
    registerListener(myMC);
            }
            private function 
    setPosition(w:Number):Number {
                if (
    isNaN(abStand)) {
                    
    abStand 0;
                } else {
                    
    abStand+= w+2;
                }
                return 
    abStand;

            }
            public function 
    lContainer(__mc:MovieClip) {
                
    con __mc;
            }
            private function 
    registerListener(__mc:MovieClip):void {
                
    __mc.mouseChildren false;
                
    //__mc.addEventListener(MouseEvent.DOUBLE_CLICK, clickHandler);
                
    __mc.addEventListener(MouseEvent.MOUSE_OUToutHandler);
                
    __mc.addEventListener(MouseEvent.MOUSE_OVERoverHandler);
                
                switch (
    __mc.target) {
                    case 
    "ladeText" :
                        
    __mc.addEventListener(MouseEvent.CLICKclickHandler);
                        break;
                    case 
    "ladeFunc" :
                        
    __mc.addEventListener(MouseEvent.CLICKclickHandler);
                        break;
                    case 
    "ladeGalerie" :
                        
    trace("ladeGalerie switch");
                        
    __mc.addEventListener(MouseEvent.CLICKgalerieListener);
                        break;
                    case 
    "ladeSonstige" :
                        
    __mc.addEventListener(MouseEvent.CLICKclickHandler);
                        break;
                }
                
    //addEventListener(MouseEvent.MOUSE_UP, f);
                //addEventListener(MouseEvent.MOUSE_UP, clickHandler);
                //addEventListener(MouseEvent.MOUSE_WHEEL, clickHandler);

            
    }
            private function 
    galerieListener(event:MouseEvent):void {
                
    killListener(event.target);
                
                
    galerie = new loadGalerie(event.target.xmlUrl);
                
    con.addChild(galerie);
                
    galerie.30;
            }
            private function 
    killListener(__mc:Object):void {
                
    killContainer();
                
    __mc.removeEventListener(MouseEvent.DOUBLE_CLICKclickHandler);
                
    //addEventListener(MouseEvent.MOUSE_DOWN, clickHandler);
                
    __mc.removeEventListener(MouseEvent.MOUSE_OUToutHandler);
                
    __mc.removeEventListener(MouseEvent.MOUSE_OVERoverHandler);
                
    __mc.removeEventListener(MouseEvent.CLICKclickHandler);
                switch (
    __xml.func.toString()) {
                    case 
    "ladeText" :
                        
                        break;
                    case 
    "ladeFunc" :
                        break;
                    case 
    "ladeGalerie" :
                        
    __mc.removeEventListener(MouseEvent.CLICKgalerieListener);
                        break;
                    case 
    "ladeSonstige" :
                        break;
                }
                for (var 
    i:uint 0btnArray.lengthi++) {
                    if (
    __mc.name != btnArray[i].name) {
                        if (
    btnArray[i].currentFrame 1) {
                            
    registerListener(btnArray[i]);
                            
    btnArray[i].addEventListener(Event.ENTER_FRAMEmcRewind);
                        }
                    }
                }
            }
            private function 
    killContainer():void {
                var 
    child:DisplayObject;
                for (var 
    i:uint=0con.numChildreni++) {
                    
    child con.getChildAt(i);
                    if (
    con.getChildAt(iis DisplayObjectContainer) {
                        
    con.removeChild(DisplayObjectContainer(child));
                    }
                }
            }
            private function 
    clickHandler(event:MouseEvent):void {
                
    killListener(event.target);
            }
            private function 
    outHandler(event:MouseEvent):void {
                
    event.target.addEventListener(Event.ENTER_FRAMEmcRewind);
            }
            private function 
    overHandler(event:MouseEvent):void {
                
    event.target.removeEventListener(Event.ENTER_FRAMEmcRewind);
                
    event.target.play();
            }
            private function 
    mcRewind(event:Event):void {
                
    event.target.prevFrame();
                
    //var str:String = mcRewind
                
    if (currentFrame == 1) {
                    
    event.target.removeEventListener(Event.ENTER_FRAMEmcRewind);
                }
            }
            private function 
    funcUebergabe(func:Function) {
                
    doubleClickEnabled true;
                
    addEventListener(MouseEvent.MOUSE_UP__xml.func);
            }
            private function 
    getXML():XML {
                return 
    __xml;
            }
            public function 
    setXML(xml:XML):void {
                
    __xml xml;
            }
        }

    und die Class um die ganze Geschichte zu Starten

    startClass.as
    PHP-Code:
    package {
        
    import menueExample;
        
    import flash.display.LoaderInfo;
        
    import flash.display.Loader;
        
    import flash.net.URLRequest;
        
    import flash.events.*;
        
    import flash.net.*;
        
    import flash.xml.*;
        
    import flash.display.MovieClip;
        public class 
    startClass extends menueExample {
            private var 
    __name:String;
            private var 
    myXML:XML = new XML();
            public var 
    container:MovieClip = new MovieClip();
            public function 
    startClass() {
                
    lContainer(container)
                
    addChild(container)
                
    container.10;
                
    loadGalerie("xml/menue.xml",ladeMenueListener);
            }
            private function 
    loadGalerie(url:Stringfunc:Function):void {
                
    //addChild(bigCon);
                //instanziiert den URLLoader
                
    var loader:URLLoader = new URLLoader();
                
    //weist die Listerner zu;
                
    func(loader);
                
    //instanziiert den URLRequest
                
    var request:URLRequest = new URLRequest(url);
                try {
                    
    loader.load(request);
                } catch (
    error:Error) {
                    
    trace("Unable to load requested document.");
                }
            }
            private function 
    ladeMenueListener(dispatcher:IEventDispatcher):void {
                
    dispatcher.addEventListener(Event.COMPLETEcompleteHandler);
                
    dispatcher.addEventListener(Event.OPENopenHandler);
                
    dispatcher.addEventListener(ProgressEvent.PROGRESSprogressHandler);
                
    dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERRORsecurityErrorHandler);
                
    dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUShttpStatusHandler);
                
    dispatcher.addEventListener(IOErrorEvent.IO_ERRORioErrorHandler);
            }
            
    //XML Geladen
            
    private function completeHandler(event:Event):void {
                var 
    loader:URLLoader URLLoader(event.target);
                
    ladeMenue(loader.data);
            }
            private function 
    openHandler(event:Event):void {
                
    trace("openHandler: " event);
            }
            private function 
    progressHandler(event:ProgressEvent):void {
                
    trace("progressHandler loaded:" event.bytesLoaded " total: " event.bytesTotal);
            }
            private function 
    securityErrorHandler(event:SecurityErrorEvent):void {
                
    trace("securityErrorHandler: " event);
            }
            private function 
    httpStatusHandler(event:HTTPStatusEvent):void {
                
    trace("httpStatusHandler: " event);
            }
            private function 
    ioErrorHandler(event:IOErrorEvent):void {
                
    trace("ioErrorHandler: " event);
            }
            private function 
    ladeMenue(xmlStr:String):void {
                
    myXML.ignoreWhitespace true;
                
    myXML.ignoreComments false;
                
    myXML XML(xmlStr);
                for (var 
    0i<myXML.children().length(); i++) {
                    
    __name i.toString() +"_class";
                    var 
    __mc:menueExample = new menueExample();
                    
    __mc.setXML (myXML.children()[i]);
                    
    addChild(__mc);
                    
    __mc.AttachMovie(__name);
                }
            }
        }

    Gruß

    Wanderratte
    Gebildet ist,
    wer weiß,
    wo er findet,
    was er nicht weiß.

    4bugs
    Home
    Amazon Wunschzettel

  3. #3
    TP-Moderator Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Avatar von Wanderratte
    Registriert seit
    Mar 2002
    Beiträge
    5.487
    und zum Schluß die XML - Dateien

    menue.xml
    HTML-Code:
    <?xml version="1.0" encoding="utf-8"?>
    <menue>
        <menue_0>
            <titel>Papageien</titel>
            <func>ladeGalerie</func>
            <xmlURL>xml/papageien.xml</xmlURL>>
        </menue_0>
        <menue_1>
            <titel>Katzen</titel>
            <func>ladeGalerie</func>
            <xmlURL>xml/katzen.xml</xmlURL>
        </menue_1>
        <menue_2>
            <titel>Wildtiere</titel>
            <func>ladeGalerie</func>
            <xmlURL>xml/wildtiere.xml</xmlURL>
        </menue_2>
        <menue_3>
            <titel>Sonstiges</titel>
            <func>ladeGalerie</func>
            <xmlURL>xml/sonstiges.xml</xmlURL>
        </menue_3>
    </menue>
            
    und für die Galerie, hier ist der Name egal er muss nur in der vorherigen XML angepasst werden.
    HTML-Code:
    <?xml version="1.0" encoding="utf-8"?>
    <galerie>
        <grundeinstellung>
            <!-- Anzahl der Bilder die Nebeneinander angezeigt werden sollen -->
            <anzReihe>5</anzReihe>
            <!-- thumb hoehe/weite -->
            <thumbWidth>75</thumbWidth>
            <thumbHeight>50</thumbHeight>
            <!-- abstand zwischen den einzelnen Thumbs -->
            <thumbsAbstand>5</thumbsAbstand>
            <!-- farbe für den Thumbhintergrund -->
            <thBackColor>0x999999</thBackColor>
            <thLineStyle>0x333333</thLineStyle>
            <!-- Ausrichtung der Thumbs top,left,down,right -->
            <thumbsPos>top</thumbsPos>
            <!-- abstand des großen Bildes von den Thumbs -->
            <abStandBig>10</abStandBig>
            <maxBreite>600</maxBreite>
            <maxHoehe>400</maxHoehe>
            <xPos>0</xPos>
            <yPos>0</yPos>
        </grundeinstellung>
        <picGalerie>
            <pics_0>
                <pUrl>pics/papageien/papageien_00.jpg</pUrl>
                <pText>text 1</pText>
            </pics_0>
            <pics_1>
                <pUrl>pics/papageien/papageien_01.jpg</pUrl>
                <pText>text 2</pText>
            </pics_1>
            <pics_2>
                <pUrl>pics/papageien/papageien_02.jpg</pUrl>
                <pText>text 3</pText>
            </pics_2>
            <pics_3>
                <pUrl>pics/papageien/papageien_03.jpg</pUrl>
                <pText>text 3</pText>
            </pics_3>
            <pics_4>
                <pUrl>pics/papageien/papageien_04.jpg</pUrl>
                <pText>text 5</pText>
            </pics_4>
            <pics_5>
                <pUrl>pics/papageien/papageien_05.jpg</pUrl>
                <pText>text 6</pText>
            </pics_5>
            <pics_6>
                <pUrl>pics/papageien/papageien_06.jpg</pUrl>
                <pText>text 7</pText>
            </pics_6>
            <pics_7>
                <pUrl>pics/papageien/papageien_07.jpg</pUrl>
                <pText>text 7</pText>
            </pics_7>
            <pics_8>
                <pUrl>pics/papageien/papageien_08.jpg</pUrl>
                <pText>text 7</pText>
            </pics_8>
            <pics_9>
                <pUrl>pics/papageien/papageien_09.jpg</pUrl>
                <pText>text 7</pText>
            </pics_9>
            
        </picGalerie>
    </galerie>
    Gruß

    Wanderratte
    Gebildet ist,
    wer weiß,
    wo er findet,
    was er nicht weiß.

    4bugs
    Home
    Amazon Wunschzettel

+ Antworten

Ähnliche Themen

  1. Fragen zur neuen Wabbergalerie
    Von Wanderratte im Forum Flash & Multimedia
    Antworten: 0
    Letzter Beitrag: 28.12.2010, 14:48

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

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