Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как вывести данные из класса в TextField (http://www.flasher.ru/forum/showthread.php?t=139049)

derhab 27.04.2010 01:17

создаете где-то в Main экземпляр TYPETest с ссылкой в конструкторе:

Код AS3:

var dispatch:TYPETest = new TYPETest(this);

в экземпляре TYPETest например:

Код AS3:

package main {
        import flash.text.*;
        import flash.events.Event;
        import flash.events.EventDispatcher;
 
        public class TYPETest  extends EventDispatcher {
 
                public static var ACTION:String = "TypeTest";
 
                private var _main:Main;
 
                public function TYPETest(main:Main) {
 
                      _main = main;
                }
 
                public function OutTYPETest(dot:String, author:String):void {
                        //сформировали ответ
                        _main.dispatchEvent(new Event(TYPETest.ACTION));
                }
        }
 
}


Евгени4 27.04.2010 01:34

derhab
Тут засада на засаде. :)
У меня же ещё есть XMLParser, который тоже обращается к TYPETest, и если ему передать main:Main = null; то теряется смысл.

Код AS3:

package main {
 
        public class XMLParser {
                //произвели парсинг (отделили катлеты от мух)
                //обратились на выбор из N возможных К new TYPETest();
                //с запросом OutTYPETest(dot, author);
        }
 
}


derhab 27.04.2010 01:53

Цитата:

Сообщение от Евгени4 (Сообщение 903910)
derhab
Тут засада на засаде. :)
У меня же ещё есть XMLParser, который тоже обращается к TYPETest, и если ему передать main:Main = null; то теряется смысл.
}[/as3]

че т я не совсем понял..но хорошо..
можно так:

Код AS3:

package main {
 
        import flash.display.MovieClip;
        import flash.events.Event;
 
        public class Main extends MovieClip {
 
              static private var:_instance:Main;
 
              static public function get instance():Main
              {
                      return _instance;
              }
 
              public function Main()
              {
                    _instance = this;
              }
 
        }
}

теперь из любого места достаете экземпляр Main
Код AS3:

Main.instance.dispatchEvent(...)


Евгени4 27.04.2010 13:46

derhab
Ничего не выходит:
Код AS3:

trace(Main.instance.dispatchEvent(new Event(TYPETest.ACTION))); //выдает true

а функция textOutput в классе Main несрабатывает,
Код AS3:

        public function textOutput(e:Event):void {
                trace("Принято!");
        }

Если убрать все промежуточные конструкторы XMLLoader, XMLParser то всё работает, но это не выход.
Или вешать в каждый конструктор диспатчер и ждать его в Main, а потом из Main уже дальше обращаться к следующему конструктору с передачей аргументов от предыдущего, если они были.
Я понимаю что это так должно работать.

Добавлено через 11 часов 13 минут
Подскажите пожалуйста, а как с помощью bubbles = true реализовать?


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

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