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

screamge 07.10.2007 15:30

Разделом ошибиться ладно но код из первого поста посчитать за АС2…:eek:
Извините.:rolleyes:

etc 07.10.2007 15:35

Цитата:

Сообщение от screamge
Разделом ошибиться ладно но код из первого поста посчитать за АС2…:eek:
Извините.:rolleyes:

Я про твой пост, _x, _y всякие.

screamge 07.10.2007 15:39

Код:

package src{
        import flash.display.Sprite;
        import flash.events.*;
        import flash.net.*;
       
        public class XmlFine extends EventDispatcher{
                private static var instance:XmlFine;
                private static var allowInstantiation:Boolean;
               
                private var xml:XML;
                private var loader:URLLoader;
               
                public static function getInstance():XmlFine {
        if (instance == null) {
            allowInstantiation = true;
            instance = new XmlFine();
            allowInstantiation = false;
          }
        return instance;
      }
     
      public function XmlFine ():void {
        if (!allowInstantiation) {
            throw new Error("Error: Instantiation failed: Use XmlFine.getInstance() instead of new.");
          }
      }
               
                public function load (lang:String):void {
                        loader = new URLLoader ();
                        loader.addEventListener (Event.COMPLETE, afterLoad);
                        loader.load (new URLRequest (lang + '_content.xml'));
                }
               
                public function get content ():XML {
                        return xml;
                }
               
                private function afterLoad (e:Event):void {
                        setXML ();
                        dispatcher ();
                }
               
                private function setXML ():void {
                        xml = new XML (loader.data);
                }
               
                private function dispatcher ():void {
                        dispatchEvent(new Event('onLoad'));
                }
               
        }
}

Ну вроде тогда так.

Цитата:

Я про твой пост, _x, _y всякие.
Я превьюс пост не дописал просто, редактировал.

Torero 07.10.2007 16:58

Цитата:

Сообщение от __etc
....URLLoader, который может грузить данные в различных форматах, как в текстовых, так и бинарных. Что делать с полученными данными — решать программисту.

Поясни пожалуйста: Как, используя класс URLLoader, загрузить изображение?

Реализовал сабж следующим образом:
Код:

package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.Event
        public class SomeClass extends Sprite {
                public function SomeClass(){
                        loadXML();
                }
                private function loadXML(){
                    var myXML:XML = new XML();
                        tL=new FileLoad("test.xml")
                        tL.addEventListener(Event.COMPLETE, xmlLoaded);
                        function xmlLoaded(e:Event){
                                myXML=XML(tL.data);
                                loadText()
                        }
                }
                private function loadText():void{
                        var tF:TextField=new TextField();
                        tL=new FileLoad("ru.txt")
                        tL.addEventListener(Event.COMPLETE, textLoaded);
                        addChild(tF);
                        function textLoaded(e:Event){
                                tF.htmlText=tL.data;
                                loadGraph();
                        }
                }
                private function loadGraph():void{
                        var pic:Sprite=new Sprite();
                        tL=new FileLoad("1.jpg")
                        tL.addEventListener(Event.COMPLETE, graphLoaded);
                        addChild(pic);
                        function graphLoaded(e:Event){
                                pic=tL.data;
                        }
                }
        }
}

Код:

package {
import flash.net.URLRequest;
import flash.net.URLLoader;
        public class FileLoad extends URLLoader {
                public function FileLoad(filepath:String){
                        var urlReq:URLRequest = new URLRequest(filepath);
                        this.load(urlReq);
                }
        }
}

1.XML и *.txt грузятся корректно. При попытке загрузить изображение, получаю: "Type Coercion failed: cannot convert "яШяа to flash.display.Sprite"
2.Нужно-ли использовать "removeEventListener", если листнер добавляется внутри private-функции?
3.
Цитата:

Сообщение от Nirth
для этого надо переопределить метод toString()...

А как мне это должно было помочь?

etc 07.10.2007 17:01

Загрузить в бинарном режиме, потом отдать на растерзание Loader-у.

з.Ы. Никогда не пиши функции в методах, просто никогда.

DarkLight 07.10.2007 17:02

Полученные бинарные данные изображения надо использовать через loadBytes

Torero 07.10.2007 17:05

Цитата:

Сообщение от __etc
Никогда не пиши функции в методах, просто никогда.

В сотый раз уже слышу.. Ответьте, наконец, кто-нибудь: что в этом такого ужасного?
----
В данном случае, например, не приходится заморачиваться с областью видимости.

DarkLight 07.10.2007 17:07

Куча лишних проблем с областями видимости, например. Опасность дублирования кода в процессе работы над проектом, затруднение рефакторинга и усложнение кода, затруднение документирования и сопровождения.

etc 07.10.2007 17:11

Цитата:

Сообщение от Torero
В данном случае, например, не приходится заморачиваться с областью видимости.

В данном случае ты вообще лишаешься области видимости.

BlooDHounD 08.10.2007 14:54

+ функции могут удалить из памяти мусорщиком.


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

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