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

dr1emaver 14.09.2011 17:58

Несколько классов
 
Здравствуйте, хотел бы узнать возможен ли такой случай :
Например есть у нас несколько классов с различными исполняющими функциями и есть главный класса с одной функцией. В этой функции есть например три картинки, по нажатию на 1 картинку вызывается 1 класс и все управление передается функциям этого класса, то есть как будто у нас программа состоит только из этого класса, нажимаешь вторую картинку и вызывается второй класс и все происходит аналогично и т.д.
Возможно ли это ? И как реализовать ?

TanaTiX 14.09.2011 18:19

Интерфейсы, колбэки... Да, это возможно.
Цитата:

В этой функции есть например три картинки
А вот это невозможно. Функция - это объект. У нее нет свойства "картинка". Зато есть аргументы, куда можно их передать.

dr1emaver 14.09.2011 18:37

ну вот у меня например есть класс Main и классы casual_class_first , casual_class_second, как из функции
main в классе Main можно полностью передать управление классу casual_class_first
Код AS3:

 
        public class Main extends Sprite
        {
//....
public function Main():void
                {
        //тут как то вызвать класс casual_class_first
                }


botbot 14.09.2011 19:10

Если класса casual_class_first ещё нет живого, то
Код AS3:

        public class Main extends Sprite
        {
//....
public function Main():void
                {
        //тут как то вызвать класс casual_class_first
                    new casual_class_first();
                }

У классов есть методы (функции). "полностью передать управление классу" - вызвать один из его методов.
Пока очень плохо понимать, что вы хотеть.

dr1emaver 14.09.2011 19:16

Идея в том, что например есть условие в зависимости от условия запускается своя программа со своими уникальными функциями (каждая программа описана классом, соответственно у каждого класса свои уникальные функции)

То есть приведу пример, есть текстовое поле.Если я наберу 1 в него и нажму на кнопку, то у меня запуститься программа с красивой оболочкой и своими функциями. Например наберу 2, то откроется другая программа с другой оболочкой и функциями. Так вот каждая программа описана своим классом.
И вот меня интересует, как сделать вызов именно другого класса, чтобы появлялась программа описанная этим классом)
Цитата:

Если класса casual_class_first ещё нет живого, то
немного не понял..Всмысле нет живого ? Есть файл casual_class_first.as в котором он описан и его функции.

Bgg 14.09.2011 19:25

Цитата:

Сообщение от dr1emaver (Сообщение 1031482)
немного не понял..

А вы сначала прочитайте основы, а потом садитесь писать код, а не наоборот

botbot 14.09.2011 19:32

Цитата:

Сообщение от dr1emaver (Сообщение 1031482)
Идея в том, что например есть условие в зависимости от условия запускается своя программа со своими уникальными функциями (каждая программа описана классом, соответственно у каждого класса свои уникальные функции)

То есть приведу пример, есть текстовое поле.Если я наберу 1 в него и нажму на кнопку, то у меня запуститься программа с красивой оболочкой и своими функциями. Например наберу 2, то откроется другая программа с другой оболочкой и функциями. Так вот каждая программа описана своим классом.
И вот меня интересует, как сделать вызов именно другого класса, чтобы появлялась программа описанная этим классом)

немного не понял..Всмысле нет живого ? Есть файл casual_class_first.as в котором он описан и его функции.

Вам бы почитать самые основы. ВОт тут, например: http://help.adobe.com/ru_RU/as3/lear...73f7-8000.html
Вот маленький пример того, что вы хотите.
1 Создаём новую флешку
2 Делаем на ней 3 картинки
3 Переводим картинки в символы. В свойствах ставим галку "экспорт в ActionScript". Имена классов пишем вот эти casual_class_first и прочее. Кстати, имена классов лучше начинать с Заглавных букв.
4 в каждом из классов пишем примерно такое:
Код AS3:

        public class casual_class_first extends MovieClip
        {
                //Эта ф-я получит управление во время старта флешки для каждого символа, к которому привязан этот класс
                public function casual_class_first()
                {
                        // Говорим флешке "при клике мышки на символ - вызови clicked
                        addEventListener(MouseEvent.CLICK, clicked);
                }
 
                // Функция будет вызвана при клике мышкой по картинке
                public function clicked(e: Event): void
                {
                        // делаем что нам надо
                }
}

Там ещё правда директивы import нужны, сами допишите, а то я непомню где MouseEvent лежит.

Gage 15.09.2011 00:00

Цитата:

Сообщение от dr1emaver (Сообщение 1031454)
Здравствуйте, хотел бы узнать возможен ли такой случай :
Например есть у нас несколько классов с различными исполняющими функциями и есть главный класса с одной функцией. В этой функции есть например три картинки, по нажатию на 1 картинку вызывается 1 класс и все управление передается функциям этого класса, то есть как будто у нас программа состоит только из этого класса, нажимаешь вторую картинку и вызывается второй класс и все происходит аналогично и т.д.
Возможно ли это ? И как реализовать ?

Вы. кажется, спрашиваете о полиморфизме? - название функций одно и то же, а функционал разный?
Если так - вам сюда:
http://help.adobe.com/ru_RU/ActionSc...0204-7fcd.html

Котяра 15.09.2011 00:08

Наследование и полиморфизм - это не одно и то же.
Полиморфизм реализуется через наследование, но не обязательно только через него - есть ещё интерфейсы.
Вот классический пример с фигурами.

Gage 15.09.2011 00:44

Цитата:

Сообщение от Котяра (Сообщение 1031541)
Наследование и полиморфизм - это не одно и то же.
[/url].

Надо бы, конечно, самого автора спросить - что ему надо. Но судя по вот этому
Цитата:

... по нажатию на 1 картинку вызывается 1 класс и все управление передается функциям этого класса, то есть как будто у нас программа состоит только из этого класса...
я так понял, что ему именно полиморфное поведение и нужно - т. е. определить переменную базового класса, но вызывать для создания экземпляра разные конструкторы. Соответственно, при неизменной реализации основного кода, будут выполняться разные действия.

Цитата:

Сообщение от Котяра (Сообщение 1031541)
Полиморфизм реализуется через наследование, но не обязательно только через него - есть ещё интерфейсы.
Вот классический пример с фигурами.

Да, конечно. Но интерфейсы в основном нужны для стандартизации, чтобы любой разработчик мог реализовать конкретное поведение. А когда человек пишет все сам, то - вряд ли пригодится.


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

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