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

kaploson 17.08.2011 21:06

Вызов функции из другого класса
 
Здравствуйте, не получается вызывать метод из другого класса.

Есть основной класс Main. В нем есть функция create. И есть второй класс. В котором используется в TextField выводится информация из БД с помощью htmlText.Выводятся, например такие переменные как date,name.. Переменная name выдает имя юзера из БД. Мне нужно, чтобы при нажатии на имя выполнилась функция из класса Main.

Код AS3:

package  
{
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.text.TextField;
        import flash.text.TextFormat;
        import flash.display.Bitmap;
        import flash.events.MouseEvent;
        import flash.display.*;
        import flash.events.*;
        import flash.display.MovieClip;
        import flash.utils.*;
        import Main;
 
        public class mean extends Sprite
        {
                private var _info:XML;
 
                private var _text:TextField;
                private var _textFormat:TextFormat = new TextFormat("AGOpus", 15, 0xFFFFFF);
 
 
                public function mean(info:XML)
                {
                        func();
 
                }
 
private function func():void
                {
                        var instance:Main = new Main();
                        _text = new TextField();
                        _text.multiline = true;
                        _text.wordWrap = true;
                        _text.htmlText = _info..name.text()+ "\n" +_info..date.text();
                        _info..name.text().addEventListener(MouseEvent.CLICK, instance.create);
 
 
                }

и главный класс Main :
Код AS3:

 public function Main():void
                {
 
 
                        if (stage) init();
                else addEventListener(Event.ADDED_TO_STAGE, init);
 
 
                }
 
        function create(e:Event)
                {
 
            // создание запроса
            var stat_loader:URLLoader = new URLLoader();
            var stat_request:URLRequest=new URLRequest("http://site.ru/create.php");// заменяем на ссылку к вашему скрипту
            stat_request.method=URLRequestMethod.POST;
            // добавление параметров в запрос
            var stat_vars:URLVariables = new URLVariables();
              stat_vars['search'] =  _info..name.text() as mean;
        stat_request.data=stat_vars;
        // выполнение запроса
        stat_loader.addEventListener(Event.COMPLETE,create_complete);
        stat_loader.load(stat_request);               
                }

Думаю, что неправильны строчки,наверное в них я написал чушь :
Код AS3:

 _info..name.text().addEventListener(MouseEvent.CLICK, instance.create);
stat_vars['search'] =  _info..name.text() as mean;

Помогите пожалуйста, очень надо..

goodguy 17.08.2011 21:12

Где модификатор доступа функции create?
она должна быть public

И вообще логика, мягко говоря, странная. Какой-то сторонний класс, создает в себе экземпляр главного?

п.с. Так же хоть, конструктор и не возвращает никаких данных, его принято делать не типизированным, а вот функция create, напротив должна быть void. Хоть в данном случае это и не принципиально, не нужно заводить себе сразу плохие привычки

kaploson 17.08.2011 21:49

сделал
Код AS3:

public function create(e:Event) : void

Ничего не изменилось.

Цитата:

И вообще логика, мягко говоря, странная. Какой-то сторонний класс, создает в себе экземпляр главного?
Сторонний класс исплозьуется как дизайн, а в главном все основные функции работы с базой данных..

Код AS3:

_info..name.text().addEventListener(MouseEvent.CLICK, instance.create);
stat_vars['search'] =  _info..name.text() as mean;

С этими строчками все нормально ??

goodguy 17.08.2011 22:23

Что есть вот это?
Код AS3:

stat_vars['search'] =  _info..name.text() as mean;


kaploson 17.08.2011 22:28

ну предполагается,отправить "имя" в скрипт php , где оно будет под переменной search

goodguy 17.08.2011 22:32

Так а почему это приводится к типу mean?
mean - это же спрайт О_о

kaploson 17.08.2011 22:39

убрал, сделал:
Код AS3:

stat_vars['search'] =  _info..name.text() ;

Все равно не работает..

Genzo 18.08.2011 12:10

Код AS3:

_info..name.text().addEventListener(MouseEvent.CLICK, instance.create);

на что вы вешаете прослушиватель? на XML или строку? как можно кликнуть по данным? ......

carrotoff 18.08.2011 12:53

Я что-то вообще не разобрался, Main - это документ класс (как понял я из фразы "основной класс"), он срабатывает при запуске, а где происходит создание экземпляра mean? Он вообще срабатывает?

Или я что-то не заметил?

Да, кстати, название классов лучше писать с большой буквы

kaploson 18.08.2011 13:00

Мне приходят данные в виде XML
Код:

<data>
        <name>ИМЯ1,ИМЯ2,ИМЯ3</name>
        <date>ДАТА</date>
</data>

Соответственно я их вывожу на экран. И мне надо сделать каким нибудь образом, чтобы можно было кликать на
ИМЯ1,ИМЯ2,ИМЯ3, нажав на одно из них должна вызывается функция из главного класса Main.

Да mean создается в Main'e.


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

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