Flash Zone Forum > Передача данных из одного класса в другой
Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Передача данных из одного класса в другой
Flash Zone Forum > Macromedia Flash > ActionScript
Nike
Доброе время суток форумчане =)

Пишу класс для общения с php: отправки и получения данных.

Но появилась проблема: не очень получается передать данные из класса MyLoader в класс Main

Уже сколько вариантов перепробовал - получается только протрейсить данные, а мне их нужно потом использовать либо в TextField вставить, либо еще куда...

Помогите пожалуйста =)

Main.as
Код
package
{
    import flash.display.DisplayObject;
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.filters.BitmapFilterType;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.text.TextField;
    import flash.ui.Mouse;
    
    
    /**
     * ...
     * @author Nike
     */
    public class Main extends Sprite
    {
        // Кнопка
        private var button: Sprite = new Sprite();
        
        // Текстовое поле
        private var txt: TextField = new TextField();
        
        // Текст кнопки
        private var bText: TextField = new TextField();
        
        
        public function Main(): void
        {
            bText.text = "Button";
            bText.x = 110;
            bText.y = 50;
            bText.width = 50;
            bText.height = 20;
            bText.selectable = false;
            bText.mouseEnabled = false;
            
            button.graphics.beginFill(0xFFFF00, 0.5);
            button.graphics.drawRoundRect(50, 50, 150, 20, 15, 15);
            button.graphics.endFill();
            button.contains(bText);
            button.addChild(bText);
            button.buttonMode = true;
            
            txt.x = 70;
            txt.y = 100;
            txt.text = "Text";
            txt.height = 150;
            txt.width = 200;
            
            
            addChild(button);
            addChild(txt);
            
            button.addEventListener(MouseEvent.CLICK, on_cl);
        }
        
        private function onik(): void
        {
            var x: MyLoader = new MyLoader();
            trace(x.getV);
            
            txt.text = x.getV;
        }
        
        private function on_cl(e: MouseEvent = null): void
        {
            onik();
        }
    }
}


MyLoader.as
Код
package
{
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.text.TextField;
    
    
    /**
     * ...
     * @author Nike
     */
    public class MyLoader extends Sprite
    {
        private var loader: URLLoader = new URLLoader();
        
        public function MyLoader()
        {
            this.load();
            
            //mainBMap.addEventListener(MouseEvent.CLICK, mapClick);
            
            loader.addEventListener(Event.COMPLETE, loader_onLoad);
        }
        
        private function load(): void
        {
            var req: URLRequest = new URLRequest("http://lenta/00.php");
            req.method = URLRequestMethod.POST;
            req.data = 'yea=Да&noa=Нет';
            this.loader.load(req);
        }
        
        private function loader_onLoad(e: Event = null): void
        {
            trace("trace = " + loader.data);
        }
        
        public function get getV(): String
        {
            return "getV " + this.loader.data;
        }
    }
}


Передать необходимо loader.data

Я только учусь - помогите пожалуйста wink.gif

Заранее спасибо =)
MustLive
Цитата
Передача данных из одного класса в другой, Не получается передать данные

Nike

Для ºтого сделай или метод в принимающем классе (для записи в приватное свойство), или сделай публичное свойство, куда будешь заносить данные из другого класса.

Цитата
Передать необходимо loader.data

Вот и передай эти данные вышеописанным способом (первым или вторым вариантом).

В функции loader_onLoad вместо трейса напиши:

Код
private function loader_onLoad(e: Event = null): void
{
    // в этом примере MyMain - это экземпляр класса Main
    MyMain.data = loader.data; // вариант ¹1 с публичным свойством data
    MyMain.setData(loader.data); // вариант ¹2 с методом setData
}
Русская версия IP.Board © 2001-2013 IPS, Inc.