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

Jitakuzu 14.12.2010 21:59

Путь к файлу
 
Доброго времени суток
Поиск юзал - везде один и тот же ответ, но он мне не подходит. В общем, это код главного класса на AS3:
Код AS3:

package src.pic {
        import flash.display.*;
        import flash.net.*;
        import flash.events.*;
        public class main extends MovieClip{
                private var picLoader:Loader;
                private var picURL:FileReference = new FileReference();
                private var browseFilter:FileFilter = new FileFilter("Images","*.jpg");
                //
                public function main () {
                        picLoader = new Loader();
                        picLoader.contentLoaderInfo.addEventListener(Event.INIT, picLoaderListener);
                        picURL.browse([browseFilter]);
                        picURL.addEventListener(Event.SELECT, picSelectListener);
                }
                private function picSelectListener (e:Event) {
                        trace("Picture selected");
                        picLoader.load(new URLRequest(e.target.name));
                }
                private function picLoaderListener (e:Event) {
                        trace("Picture loaded");
                        addChild(picLoader.content);
                }
        }
}

Данная строка
picLoader.load(new URLRequest(e.target.name));
позволяет загружать файл только из той же папки, где и сама флешка лежит. На что заменить e.target.name, чтобы можно было подгружать любой выбранный файл?

dimarik 14.12.2010 23:25

например, "drugaya_papka/file.jpg"

gloomyBrain 14.12.2010 23:59

Может все таки сначала стоит загрузить картинку через FileReference.load(), а потом полученный ByteArray (picURL.data) пихнуть в параметры loadBytes для picLoader'a, не?

Jitakuzu 15.12.2010 01:12

Может и да, ток мне это не о чем не говорит. Можешь дополнить мой код?? И файл не обязательно должен быть картинкой. Может это xml файл?? Главное из любого места чтоб этот файл погружался)

Хомяк 15.12.2010 01:19

возьмите отсюда:

Код AS1/AS2:

internal class FileLoader extends EventDispatcher {
    private var file:FileReference;
    private static var typeFilter:Array;
    public var data:*;
    private var loader:Loader;
    public var bitmapData:BitmapData;
 
    public function FileLoader() {
        init();
    }
 
    private function init():void {
        file = new FileReference();
        file.addEventListener(Event.SELECT, select, false, 0, true);
        file.addEventListener(Event.CANCEL, cancel, false, 0, true);
        file.addEventListener(Event.COMPLETE, complete, false, 0, true);
        var fileFilter:FileFilter = new FileFilter("Images", "*.jpg;*.gif;*.png");
        typeFilter = [fileFilter];
        loader = new Loader();
        loader.contentLoaderInfo.addEventListener(Event.INIT, initialize, false, 0, true);
    }
    public function load():void {
        file.browse(typeFilter);
    }
    private function select(evt:Event):void {
        file.load();
        dispatchEvent(evt);
    }
    private function cancel(evt:Event):void {
        dispatchEvent(evt);
    }
    private function complete(evt:Event):void {
        data = evt.target.data;
                trace(evt.target);
        loader.loadBytes(data);
        dispatchEvent(evt);
    }
    private function initialize(evt:Event):void {
        bitmapData = null;
        var bitmap:Bitmap = Bitmap(evt.target.content);
        bitmapData = bitmap.bitmapData;
        dispatchEvent(evt);
    }

вот так, наверное, лучше будет

dimarik 15.12.2010 10:15

Там еще было вопросительное предложение аж с двумя знаками вопроса.
Цитата:

Может это xml файл??

Jitakuzu 15.12.2010 16:35

Хомяк, спасибо =)

dimarik 15.12.2010 21:42

Объясните нам, уважаемый Jitakuzu, Вам помогло решение, предложенное комрадом Хомяк при загрузке xml?


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

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