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

Andrei666 25.07.2008 12:10

Обращение к методам другого класса
 
Приветствую всех!
Тема, скорее всего поднималась не раз, но разобраться до сих пор не смог... К примеру, нужно сделать листальщик трубнейлов: тумбы и две кнопки(следующая, предыдущая).
К кнопке привязан класс:
Код:

package Scripts{
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.events.MouseEvent;
       
        public class myButton extends MovieClip{
                public function myButton(){
                        addEventListener(MouseEvent.MOUSE_DOWN, MouseDownEvent);
                };
               
                private function MouseDownEvent(evt:MouseEvent):void{       
                        trace ("Click");
                };
        };
};

У мувика с тумбами класс:
Код:

package Scripts{
        import flash.display.MovieClip;
       
        public class TrumbTrans extends MovieClip{
                public function TrumbTrans(){
                        // Init
                };
               
                public function Next(){
                        // Transition to text thrumbnail
                };
        };
};

Вопроса два:
1. Как организовать вызов функции TrumbTrans.Next() по нажатию кнопки?
2. Классы для работы с кнопками "следующая", "предыдущая" будут по сути одинаковые. Как можно разделить эти события?

Заранее спасибо!

mre 25.07.2008 13:08

1. Странный вопрос. Вызвать метод Next у экземпляра TrumbTrans.
2. Например, добавлять слушатель не в теле класса а к экземпляру.

Andrei666 25.07.2008 13:19

1. Говорит 1061: Call to a possibly undefined method Next through a reference with static type Class.
2. К экземпляру это как? :eek:

Подскажите, как это по человечески делается? Может быть я в корне где-то не прав? Как в принципе выглядит событийная модель для классических приложений(форма с кнопками и прочими компонентами) во флеш ?

iNils 25.07.2008 13:29

Andrei666, надо использовать кнопку http://www.flasher.ru/forum/images/r...ttons/edit.gif, а не создавать несколько сообщений подряд.

mre 25.07.2008 13:42

Цитата:

> К экземпляру это как?
Что-нибудь знаете про ООП?

Andrei666 25.07.2008 13:56

В общем понимаю.
То, что получилось:
Код:

package Scripts{
        import flash.display.MovieClip
       
        dynamic public class TrumbTrans extends MovieClip{
                public function TrumbTrans(){
                };
               
                public function Next(){
                        trace("Next");
                }
        };
};

Код:

package Scripts{
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.events.MouseEvent;
       
        public class MyButton extends MovieClip{
                public var TR:TrumbTrans;
               
                public function MyButton(){
                        TR = new TrumbTrans();
                        addEventListener(MouseEvent.MOUSE_DOWN,MouseDown);
                };
               
                private function MouseDown(evt:MouseEvent):void{
                        TR.Next();
                };
        }
}

В общем, так работает. НО!!!
Допустим, что при мувик с тумбами прорисован непосредственно и мне нужно переходить с кадра на кадр:
Цитата:

public function Next(){
gotoAndStop(2);
}
По идее, при инициализации ролика вместе с кнопкой и мувиком с тумбами должны создаваться соответствующие им экземпляры классов (иначе, как тогда работает кнопка). Соответственно мне нужно обратиться конкретно к тому экземпляру, который создался при инициализации. Как узнать его имя? Логично было бы, если это было бы Instance Name, это не так.

mre 25.07.2008 14:07

Цитата:

> Логично было бы, если это было бы Instance Name, это не так.
Это так.

Не пробовали читать основы AS3?

Andrei666 25.07.2008 14:41

Нельзя получить ссылку? Или слово ключевое? Не нашел...


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

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