Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-07-2010, 11:41   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 3
Question Loader casten oder sonst irgendwie einer anderen Variable zuweisen?

Hallo alle miteinander,

nachdem ich die letzten paar Tage gesucht habe und verzweifelt bin , habe ich mir gedacht vl. kann mir ja hier jemand wenn ich mein Problem vorstelle weiterhelfen.

Ich bastle gerade an einem Projekt dass aus einem XML-File Links zu Bildern lädt, diese dann mit einem Loader ebenfalls lädt und anzeigt, und das habe ich mir schon irgendwie aus dem internet herausgesucht, da meine Kenntnisse was Actionscript bzw. überhaupt Flash angeht nicht all zu berauschend sind. Bevor ich mit dem XML-File geladen habe, habe ich schon eine Klasse erstellt die sich ein bischen mit den Bildern herumspielt und diese Klasse würde ich gerne weiter verwenden können. Mein Problem ist jetzt jedoch, dass ich den Inhalt des Loaders gerade mal einem Array zuweisen habe können nicht aber meiner selbsterstellten Klasse Pictures. Meine Frage ist jetzt, kennt jemand eine Möglichkeit den Inhalt des Loaders (also das jeweilige Bild) in eine Variable mit selbsterstellter Klasse zu casten oder sonst irgendwie da hinein zu befördern?

Falls es irgendwie hilft hier der Code in dem ich das Bild lade
ps: nicht von den comments ablenken lassen, aber da an dem Projekt später noch ein Kollege mitmischt muss natürlich alles kommentiert sein

ActionScript:
  1. private function parseXML(evt:Event):void
  2.         {
  3.             xml = new XML(xmlloader.data);//der inhalt aus dem xmlfile wird in xml geladen
  4.            
  5.             xml.ignoreWhite = true;//leerzeilen & oder ähnliches werden ignoriert
  6.            
  7.             myxmllength = xml.item.length();//zählt wie oft es im xml-file den punkt item gibt
  8.             trace ("Länge: " + myxmllength);//muss ichn trace wirklich erklären??
  9.             trace("______________________________");               
  10.            
  11.             for (xmllengthticker = 0; xmllengthticker < myxmllength; xmllengthticker ++)//schnappt sich alle inhalte (imagelink, link, title und text) und gibt diese aus
  12.             {
  13.                 //__________________TRY_________________//don't ask me why,
  14.                 // hier wird ein bild geladen und gerendert
  15.                 imageRequest = new URLRequest(xml.item[xmllengthticker].image);
  16.                 imageLoader[xmllengthticker].load(imageRequest);
  17.                 addChild(imageLoader[xmllengthticker]);
  18.                 imageLoader[xmllengthticker].x = 100 * xmllengthticker;
  19.                 imageLoader[xmllengthticker].y = 10;                       
  20.                
  21.                 //__________________TRY_________________
  22.                
  23.                
  24.                 trace(xml.item[xmllengthticker].image);
  25.                 trace(xml.item[xmllengthticker].link);
  26.                 trace(xml.item[xmllengthticker].title);
  27.                 trace(xml.item[xmllengthticker].text);
  28.                 trace("______________________________");               
  29.             }
  30.            
  31.             a++;//damit wird dafür gesorgt dass nun nachdem die links zur verfügung stehen der imageLoader verwendet wird
  32.         }

Ich hoffe mein Problem ist halbewegs verständlich erklärt (darin bin ich leider nicht sehr gut ;-)) und mir kann jemand damit helfen.

Vielen Dank und LG
Damriel
Damriel ist offline   Mit Zitat antworten
Alt 25-07-2010, 12:57   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Schaue dir mal das Beispiel an.
Code:
package
{
    import flash.display.Bitmap;
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.IEventDispatcher;
    import flash.net.URLLoader;
    import flash.net.URLRequest;

    public class HelloWorld extends Sprite
    {

        //---------------------------------------------------------------------
        //
        //          Properties
        //
        //---------------------------------------------------------------------

        private var _images:Array;

        private var _imageLoader:Loader;

        private var _imageUrls:Array;

        //---------------------------------------------------------------------
        //
        //          Constructor
        //
        //---------------------------------------------------------------------

        public function HelloWorld()
        {
            if (loaderInfo.parameters.xmlFileUrl)
            {
                loadXML(loaderInfo.parameters.xmlFileUrl);
            }
        }

        //---------------------------------------------------------------------
        //
        //          Methods
        //
        //---------------------------------------------------------------------

        private function addImage(bitmap:Bitmap):Bitmap
        {
            if (!bitmap)
            {
                return bitmap;
            }

            _images[_images.length] = addChild(bitmap);

            return bitmap;
        }

        private function createLoader():Loader
        {
            _images = [];

            return _imageLoader = new Loader();
        }

        private function loadImages(urls:Array):void
        {
            if (urls.length == 0)
            {
                return;
            }

            var data:Object = urls.shift();

            if (data.hasOwnProperty("url"))
            {
                _imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, contentLoaderInfo_completeHandler);
                _imageLoader.load(new URLRequest(data.url));
            }
        }

        private function loadXML(url:String):void
        {
            var urlLoader:URLLoader = new URLLoader();
            urlLoader.addEventListener(Event.COMPLETE, urlLoader_completeHandler);
            urlLoader.load(new URLRequest((url)))
        }

        private function parseXML(xml:XML):void
        {
            _imageUrls = [];

            for each(var node:XML in xml.children())
            {
                var imageUrl:Object = {};
                imageUrl.url = node.@url;
                _imageUrls[_imageUrls.length] = imageUrl;
            }

            loadImages(_imageUrls);
        }

        //---------------------------------------------------------------------
        //
        //          Event Handler
        //
        //---------------------------------------------------------------------

        private function contentLoaderInfo_completeHandler(event:Event):void
        {
            IEventDispatcher(event.target).removeEventListener(event.type, arguments.callee);

            addImage(new Bitmap(Bitmap(_imageLoader.content).bitmapData));

            _imageLoader.unload();

            loadImages(_imageUrls);
        }

        private function urlLoader_completeHandler(event:Event):void
        {
            var urlLoader:URLLoader = URLLoader(event.target);
            var xml:XML = new XML(urlLoader.data);
            createLoader();
            parseXML(xml);
        }
    }
}
Was fehlt ist die Positionierung. Die URL wird via Flashvars reingeben. Bei Fragen fragen. Kein Gewähr auf Kompilierung, ist freihand geschrieben.
Omega Psi ist offline   Mit Zitat antworten
Alt 25-07-2010, 14:19   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 3
hi omega psi, und danke für die rasche Antwort,...

ich hab es jetzt mal mit

Code:
 addImage(new Bitmap(Bitmap(_imageLoader.content).bitmapData));
bzw.

Code:
picture1 = new Pictures(10, 10, Bitmap(imageLoader[xmllengthticker].content));
probiert...

Das Programm zeigt mir zwar noch kein Bild an aber da hab ich vl. blos irgendwo ne Zeile Code vergessen.

Vielen Dank auf jeden Fall
und ich hoffe dass ich es damit jetzt hinbekomme

LG
Damriel
Damriel ist offline   Mit Zitat antworten
Alt 25-07-2010, 15:39   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 3
Ich hab das jetzt mal probiert bin aber nicht draufgekommen wie ich dann die Grafik anzeigen kann... denn irgendwie will er mir kein Bitmap anzeigen lassen, wenn ichs in ein Sprite werf das auch nicht und als Class auch nicht...

ActionScript:
  1. for (xmllengthticker = 0; xmllengthticker < myxmllength; xmllengthticker ++)//schnappt sich alle inhalte (imagelink, link, title und text) und gibt diese aus
  2.             {
  3.                 //__________________TRY_________________//don't ask me why,
  4.                 // hier wird ein bild geladen und gerendert
  5.                 imageRequest = new URLRequest(xml.item[xmllengthticker].image);
  6.                 imageLoader[xmllengthticker].load(imageRequest);
  7.                 picture1 = new Pictures(10, 10, Bitmap(imageLoader[xmllengthticker].content));                                       
  8.                 //picture1.loadGraphic(imageLoader[xmllengthticker].content);            
  9.                 //addChild(imageLoader[xmllengthticker]);
  10.                 imageLoader[xmllengthticker].x = 100 * xmllengthticker;
  11.                 imageLoader[xmllengthticker].y = 10;                       
  12.                
  13.                 //__________________TRY_________________
  14.  




ActionScript:
  1. public function Pictures(X:Number, Y:Number, bitmap:Bitmap)
  2.         {
  3.             super(X, Y);
  4.            
  5.             // set size
  6.             x = X;
  7.             y = Y;           
  8.                        
  9.             sprite = Class (bitmap);   
  10.             //loadGraphic(sprite);
  11.            
  12.             //height = bitmap.height;
  13.             //width = bitmap.width;
  14.         }

und hier in dem Abschnitt der Klasse "Pictures" bekomm ich wenn ichs mit nem loadGraphic versuch auch ne Fehlermeldung


Ich wäre sehr dankbar wenn mir nochmal geholfen werden könnte, ich hab leider noch nicht all zu viel Erfahrung mit Flash, und irgendwie glaub ich mag es mich auch nicht

LG
Damriel
Damriel ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
bilder, casten, image, laden, loader

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variable aus einer Textdatei ,AS Variablen zuweisen sirclueless ActionScript 3 4 27-05-2008 09:25
textvariable aus externer txt einer variable zuweisen boreker Flash MX 4 17-10-2003 11:08
Inhalt einer var. einer anderen var. zuweisen sawa_h ActionScript 1 2 28-11-2001 09:24
Importierten Text einer Variable zuweisen JackNeil Flash 4 und Flash 5 4 20-11-2001 18:35


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele