Форум 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=146671)

artics 14.11.2010 23:15

Загрузить картинку локально
 
доброго времени суток, извините за тупой, может уже повторяющийся вопрос, просто уже около двух часов ищу:wacko:, пересмотрел кучу тем на форуме, и вроде как есть что-то похожее, но не то. Хочу загрузить изображение или SWF локально (из папки с проектом). Loader, я так понял грузит только из сети, быть может я что-то упустил?

bav 14.11.2010 23:19

Loader может грузить и локально. Попробуйте в URLRequest прописать что-то вроде "my_picture.jpg" и положить одноименную картинку в ту же папку, где лежит ваша флешка.

Добавлено через 4 минуты
Чем вам не понравился пример из хелпа?

artics 15.11.2010 00:09

я так и делал, но в документации не нашол способов сделать ето на локальной машине

bav 15.11.2010 00:13

Давайте разберемся, что вам непонятно из кода в примере?
Код AS3:

package {
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.URLRequest;
 
    public class LoaderExample extends Sprite {
        private var url:String = "Image.gif";
 
        public function LoaderExample() {
            var loader:Loader = new Loader();
            configureListeners(loader.contentLoaderInfo);
            loader.addEventListener(MouseEvent.CLICK, clickHandler);
 
            var request:URLRequest = new URLRequest(url);
            loader.load(request);
 
            addChild(loader);
        }
 
        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(Event.INIT, initHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);
        }
 
        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }
 
        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }
 
        private function initHandler(event:Event):void {
            trace("initHandler: " + event);
        }
 
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
 
        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }
 
        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }
 
        private function unLoadHandler(event:Event):void {
            trace("unLoadHandler: " + event);
        }
 
        private function clickHandler(event:MouseEvent):void {
            trace("clickHandler: " + event);
            var loader:Loader = Loader(event.target);
            loader.unload();
        }
    }
}

Добавлено через 10 минут
Упростим.
Код AS3:

package {
 
    import flash.display.Sprite;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.net.URLRequest;
 
    public class Main extends Sprite
    {
        private var loader:Loader;
 
        public function Main ()
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
        private function init(e:Event = null):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
            addChild(loader);
 
            loader.load(new URLRequest("image.jpg"));
        }
 
        private function completeHandler(e:Event):void
        {
            trace("Complete");
        }
    }


artics 15.11.2010 22:31

Запустил Ваш код на FlashDevelop все работает, запустил в Flash CS4 тоже самое, что и с моим предыдущим, наверное ето что-то со средой

deamoK 16.11.2010 00:38

а для чего ето if (stage) ?, никогда такого не делал =\
init функция тоже не понятно для чего, в мэйне сразу и пишем

in4core 16.11.2010 00:46

Потому что почитайте о событии Added to Stage~

gloomyBrain 16.11.2010 00:57

Цитата:

а для чего ето if (stage)
Это шаблон FlashDevelop для основного класса. Сделано так, потому что Вашу флешку может загружать другая флешка, и ей совсем не обязательно добавлять Вашу флешку на сцену. init() срабатывает тогда, когда появляется сцена (т.е. уже можно подписываться на ее события)


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

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