Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите с подгрузкой картинки (http://www.flasher.ru/forum/showthread.php?t=118882)

LizaBraun 06.12.2008 04:50

Помогите с подгрузкой картинки
 
Наверное этот вопрос покажется глупым, но как подгрузить одну единственную jpg картинку в swf при помощи xml?
Не нашла похожего вопроса на форуме.
Качала исходник фотогалереи, убирала всё лишнее - не работает.
P.S. может не работает потому что в этой же флешке из другого xml играет музыка? Могут ли они конфликтовать?
:boredom:

Конкретней:
http://www.katra.fi/www/katrasoitin.swf
в идентичный плеер должна подгружаться обложка альбома

AL.exe 06.12.2008 17:07

Цитата:

Наверное этот вопрос покажется глупым, но как подгрузить одну единственную jpg картинку в swf при помощи xml?
Не совсем понятно, зачем нужен xml, если грузить планируется одну-единственную картинку. Нужно воспользоваться URLLoader для загрузки XML-файла и Loader для загрузки непосредственно картинки, ссылку на которую вы получили из XML-файла.

LizaBraun 06.12.2008 20:53

Заказчик так попросил, они хотят когда будет выходить новый альбом заменять обложку без моей помощи. о_О

Alex Lexcuk 06.12.2008 22:48

Вложений: 1
>>обложку без моей помощи.
Так денежек возьми как за десять, но с твоей помощью.
В ощем создаем новый actionScript файл пишем туда свою хмл
Код:

<картинка>
  kuzik.jpg
</картинка>

Файл -> сохранить как -> pic.xml

Пишем документ класс Main
Код:

package
{
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.text.*;
        import flash.events.*;
       
        public class Main extends Sprite
        {       
                private var uniLoader:UniLoader;
                private var completeCount:int;
                private var xml:XML;
                private var url:String;
                private var loader:Loader;
                public function Main():void
                {
                        trace("Поехали");
                        url = "pic.xml";
                        uniLoader = new UniLoader(url, this);
                        completeCount = 0;
                }
                public function crashMessage(_str:String):void {
                        var txt:TextField = new TextField();           
                        txt.autoSize = TextFieldAutoSize.LEFT;
                        txt.htmlText  = "<font color='#ff0000'  size='30'>" + _str;
                        addChild(txt);//добавить на рабочее поле
                }
                public function uniComplete():void {
                if (completeCount == 0) {//xml загружена
                        xml = XML(uniLoader.data);
                        url = String(xml.toString());
                        trace("Загрузка "+ url);
                        uniLoader = new UniLoader(url , this);                       
                        }
                if (completeCount == 1) {//рисунок загружен
                        loader = new Loader;
                        loader.loadBytes(uniLoader.data);
                        this.addChild(loader);
                        }
                completeCount++;
                }
               
        }
       
}

import flash.net.*;
import flash.events.*;

class  UniLoader extends URLLoader
{
                private var doc:Main;
                private var url:String;
        function UniLoader(_url:String, _doc:Main) {
                        doc = _doc;
                        url = _url;
                        dataFormat = URLLoaderDataFormat.BINARY;
                        configureListeners(this);
                try {
                        load(new URLRequest(url));               
                } catch (error:Error) {
                doc.crashMessage("При загрузке\n"+url+"\nПроизошла ошибка");
                }
        }
       
        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(IOErrorEvent.IO_ERROR,ioErrorHandler);
        }

        private function completeHandler(event:Event):void {
                doc.uniComplete();
        }

        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);
                doc.crashMessage("Error При загрузке\n"+url+"\Ошибка security");
        }


        private function ioErrorHandler(event:IOErrorEvent):void {
                trace("ioErrorHandler: " + event);
                doc.crashMessage("Error При загрузке\n"+url+"\nОшибка потока");
        }
}

В папке с fla файлом лежит файл kuzik.jpg он прописан в xml

LizaBraun 06.12.2008 23:00

Ой, пасиба-пасиба-пасиииба!!! :rolleyes:

Добавлено через 16 минут
упс... я ступила, там AS 2.0 и там класс не прописать( как быть? переделывать всё под 3.0?


Часовой пояс GMT +4, время: 16:25.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.