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

Dr_Bra 18.02.2010 17:37

обращение из класса к объектам этого класса
 
Всем привет :victory:
Подскажите, пожалуйста, как правильно обращаться к объектам из класса?
У меня есть основной fla документ, в его библиотеки есть объект card, к которому прикреплен класс PopUpManager. Объект card содержит кнопку, при нажатии на которую должна вызываться функция. При обращении к этой кнопки я допускаю ошибку, помогите разобраться..

Код AS3:

package actionScript
{
        import flash.display.Sprite;
        import fl.transitions.Tween;
        import fl.transitions.easing.*;
 
        public class PopUpManager extends Sprite
        {
                var inTween:Tween;
                var outTween:Tween;
 
                public function PopUpManager():void
                {
                        trace("наш класс успешно прикрепися к объекту!!!")
                        inTween = new Tween(this, "y", Elastic.easeOut, 5, 550, 1.5, true);
                        this.close_mc.addEventListener(Event.MouseEvent.CLICK, outTween)
                        function outTween(event:MouseEvent):void
                        {
                                outTween = new Tween(this, "y", Elastic.easeOut, 512.6, 75, 1, true);
                        }
                }
        }
}


dixus 18.02.2010 17:44

MouseEvent - это класс, а CLICK - его static поле, соответственно вместо
Код AS3:

Event.MouseEvent.CLICK

должно быть
Код AS3:

 MouseEvent.CLICK

а перед объявлением класса нужно добавить
Код AS3:

import flash.events.MouseEvent;


Dr_Bra 18.02.2010 17:54

Вложений: 1
Цитата:

Сообщение от dixus (Сообщение 887646)
MouseEvent - это класс, а CLICK - его static поле, соответственно вместо
Код AS3:

Event.MouseEvent.CLICK

должно быть
Код AS3:

 MouseEvent.CLICK

а перед объявлением класса нужно добавить
Код AS3:

import flash.events.MouseEvent;


поправил код, теперь ошибка такая:
Код AS3:

package actionScript
{
        import flash.events.MouseEvent;
        import flash.display.Sprite;
        import fl.transitions.Tween;
        import fl.transitions.easing.*;
 
        public class PopUpManager extends Sprite
        {
                var inTween:Tween;
                var outTween:Tween;
 
                public function PopUpManager():void
                {
                        trace("наш класс успешно прикрепися к объекту!!!")
                        inTween = new Tween(this, "y", Elastic.easeOut, 5, 550, 1.5, true);
 
                        this.close_mc.addEventListener(MouseEvent.CLICK, outTween)
                        function outTween(event:MouseEvent):void
                        {
                                outTween = new Tween(this, "y", Elastic.easeOut, 512.6, 75, 1, true);
                        }
                }
        }
}


dixus 18.02.2010 18:00

назовите функцию outTween как-нибудь по-другому, либо на 21ой строке используйте this.outTween вместо outTween

Dr_Bra 18.02.2010 18:11

Цитата:

Сообщение от dixus (Сообщение 887650)
назовите функцию outTween как-нибудь по-другому, либо на 21ой строке используйте this.outTween вместо outTween

спасибо

Добавлено через 2 минуты
Код AS3:

package actionScript
{
        import flash.events.MouseEvent;
        import flash.display.Sprite;
        import fl.transitions.Tween;
        import fl.transitions.easing.*;
 
        public class PopUpManager extends Sprite
        {
                var inTween:Tween;
                var outTween:Tween;
 
                public function PopUpManager():void
                {
                        trace("наш класс успешно прикрепися к объекту!!!")
                        inTween = new Tween(this, "y", Elastic.easeOut, 5, 550, 1.5, true);
 
                        close_mc.addEventListener(MouseEvent.CLICK, closed)
                        function closed(event:MouseEvent):void
                        {
                                trace("closed")
                                outTween = new Tween(this, "y", Elastic.easeOut, 550, 75, 1.5, true);
                        }
                }
        }
}

выводит "closed", но следующую строчку не выполняет, почему?

Fernando Costa 18.02.2010 18:26

вложенные функции - зло

Dr_Bra 18.02.2010 18:35

Цитата:

Сообщение от Fernando Costa (Сообщение 887658)
вложенные функции - зло

как же теперь жить ?)

dixus 18.02.2010 18:35

хм, да, прошу прощения за идиотский совет в моем прошлом посте, this.outTween не сработало бы потому же, почему и не работает это сейчас - this внутри вложенной функции обращается к объекту global, а не к тому, внутри метода которого существует.

etc 18.02.2010 18:45

Цитата:

Сообщение от Dr_Bra (Сообщение 887660)
как же теперь жить ?)

Не писать вложенных функций.

Dr_Bra 18.02.2010 18:52

Добавлено через 30 секунд
Цитата:

Сообщение от etc (Сообщение 887664)
Не писать вложенных функций.

скажите, полииз, а как мне нужно изменить код, что бы он заработал ?)


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

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