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

slavnovik 09.06.2014 13:36

Получение информации из текстового поля определенного мувиклипа
 
Здравствуйте!

Имеется массив, содержащий id комнат, мувик, в который добавляется id комнаты и др информацию.
В этом мувике содержится кнопка download_btn. Добавляю с помощью цикла этот мувик столько раз, сколько там содержится id
(Да, гвнкод)
Код AS3:

var sb:search_box = new search_box();
                                si.holder.addChild(sb);
                                sb.x= mX+315;
                                sb.y= mY;// mY+120;
                                if(sb.x > 600)
                                {
                                        sb.x = 65;
                                        sb.y +=120;
                                }
 
                                sb.id_txt.text = idRoom[i]
                                mX = sb.x;
                                mY = sb.y;

Затем на кнопку вешаю событие нажатия.. Но как мне получить содержание поля id_txt именно из того мувика, в котором нажата кнопка, а не из первого?

alexandrratush 09.06.2014 13:57

В обработчике пишите, что типа такого:
Код AS3:

var target:MovieClip = e.currentTarget as MovieClip;
trace(target.id_txt.text);

Должно сработать.:)

slavnovik 09.06.2014 14:02

Цитата:

Сообщение от alexandrratush (Сообщение 1167614)
В обработчике пишите, что типа такого:
Код AS3:

var target:MovieClip = e.currentTarget as MovieClip;
trace(target.id_txt.text);

Должно сработать.:)

Ни один мувик не нашел((

dimarik 09.06.2014 14:22

Код AS3:

(download_btn/* as Кнопка*/).mouseChildren = false;
 
function onButtonClick_handler(event:Event):void {
    var target:Кнопка = e.target;
}


slavnovik 09.06.2014 15:01

Цитата:

Сообщение от dimarik (Сообщение 1167616)
Код AS3:

(download_btn/* as Кнопка*/).mouseChildren = false;
 
function onButtonClick_handler(event:Event):void {
    var target:Кнопка = e.target;
}


(sb.download_btn as Button).mouseChildren = false;
__
Код:

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".

alexandrratush 09.06.2014 15:23

Цитата:

Ни один мувик не нашел((
Не пойму вас.((

slavnovik 09.06.2014 15:29

Ну... вот более полный *****код:

Код AS3:

for (var i=0; i <= roomAr.length-1; i++)
                        {
                                var sb:search_box = new search_box();
 
                                si.holder.addChild(sb);
                                sb.x = mX + 315;
                                sb.y = mY;// mY+120;
                                if (sb.x > 600)
                                {
                                        sb.x = 65;
                                        sb.y +=  120;
                                }
                                sb.screen_mc.addChild(roomAr[i]);
                                sb.id_txt.text = idRoom[i];
                                mX = sb.x;
                                mY = sb.y;
 
 
                                sb.download_btn.addEventListener(MouseEvent.CLICK, download_room);
 
 
                        }
                }
                function download_room(e:MouseEvent):void
                {
                        var target:MovieClip = e.currentTarget as MovieClip;
                        trace(target.id_txt.text);
                        trace(target.name);
                }


dimarik 09.06.2014 15:43

Не пойдет тут currentTarget, он будет показывать на this.
Отключите детей у download_btn, чтобы target был download_btn. И обратитесь к его родителю (sb).

Код AS3:

sb.download_btn.mouseChildren = false;
sb.download_btn.addEventListener(MouseEvent.CLICK, download_room);
 
function download_room(e:MouseEvent):void {
    var target:DisplayObject /* ваш download_btn */ = e.target as DisplayObject;
    var mc:MovieCliptarget.parent as MovieClip;
    trace(mc.id_txt.text);
}


slavnovik 09.06.2014 15:54

Цитата:

Сообщение от dimarik (Сообщение 1167623)
Не пойдет тут currentTarget, он будет показывать на this.
Отключите детей у download_btn, чтобы target был download_btn. И обратитесь к его родителю (sb).

Код AS3:

sb.download_btn.mouseChildren = false;
sb.download_btn.addEventListener(MouseEvent.CLICK, download_room);
 
function download_room(e:MouseEvent):void {
    var target:DisplayObject  = e.target as DisplayObject;
    var mc:MovieCliptarget.parent as MovieClip;
    trace(mc.id_txt.text);
}


На
Код AS3:

sb.download_btn.mouseChildren = false;

ругается. Допустим, сделаю так:
(sb.download_btn as Button).mouseChildren = false;

все нормально. Затем ругается на
Код AS3:

var target:DisplayObject /* ваш download_btn */ = e.target as DisplayObject;

http://f5.s.qip.ru/169kK9U0e.png

Попробовал
Код AS3:

var target:DisplayObject = DisplayObject(e.target);

Код:

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".

dimarik 09.06.2014 17:09

Не верю, что эта строчка дает ошибку. Перепечатайте сами. Мой PuntoSwitcher мог подменить на кириллицу.
Код AS3:

var target:DisplayObject /* ваш download_btn */ = e.target as DisplayObject;



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

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