Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.07.2010, 19:01
Conso вне форума Посмотреть профиль Отправить личное сообщение для Conso Найти все сообщения от Conso
  № 1  
Ответить с цитированием
Conso

Регистрация: Jul 2010
Сообщений: 5
По умолчанию Вопрос про ООП

Заранее извиняюсь за тупой вопрос.
Вот например, есть на сцене два мувиклипа. К их методам можно обратиться из главного класса сцены. А можно наоборот? из класса мувика обратиться к методу написанному в главном классе? Или из одного мувика к методу у другого мувика?
Спасибо.

Старый 21.07.2010, 19:20
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 2  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
1-й вариант:
А каким образом вы из главного класса сцены обращаетесь к методам класса мувика?
(ответ в вопросе как один из вариантов решения).

2-й вариант:
У главного класса (или у кого там нужно еще) можно завести статическую переменную, которая будет являться ссылкой на объект содержащий эту переменную.
Через эту переменную и дергать нужные методы.

3-й вариант:
Слушать нужные события, по которым и запускать свои методы, т.е если классу Б нужно вызвать метод у класса В, то класс Б посылает некое событие (или что либо подобное кричащее о том что что-то ему нужно), класс В получив такое событие (или узнав что В может то что нужно Б) выполняет требование.
__________________
trace("Остановите Землю, я сойду!!!");

Старый 21.07.2010, 19:38
Conso вне форума Посмотреть профиль Отправить личное сообщение для Conso Найти все сообщения от Conso
  № 3  
Ответить с цитированием
Conso

Регистрация: Jul 2010
Сообщений: 5
При первом варианте выдает Access of undefined property (

Старый 21.07.2010, 20:11
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 4  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Цитата:
Сообщение от Conso Посмотреть сообщение
При первом варианте выдает Access of undefined property (
Первый вариант предполагал что у вас есть ссылка на нужный объект, соответственно через эту ссылку можно дернуть публичные свойства и методы.

Будьте более конкретны, что именно не получается, как делаете и т.д.?
__________________
trace("Остановите Землю, я сойду!!!");

Старый 21.07.2010, 20:14
Conso вне форума Посмотреть профиль Отправить личное сообщение для Conso Найти все сообщения от Conso
  № 5  
Ответить с цитированием
Conso

Регистрация: Jul 2010
Сообщений: 5
Надо из одного клипа, вызвать метод другого который отобразил бы во втором клипе текст полученный из первого.

Добавлено через 30 минут
Второй клип просто рядом т.е. не находится в первом.


Последний раз редактировалось Conso; 21.07.2010 в 20:41.
Старый 21.07.2010, 23:53
Xel'[Naga] вне форума Посмотреть профиль Отправить личное сообщение для Xel'[Naga] Посетить домашнюю страницу Xel'[Naga] Найти все сообщения от Xel'[Naga]
  № 6  
Ответить с цитированием
Xel'[Naga]
 
Аватар для Xel'[Naga]

Регистрация: May 2001
Адрес: Зеленогорск
Сообщений: 47
Цитата:
Сообщение от Conso Посмотреть сообщение
Заранее извиняюсь за тупой вопрос.
Вот например, есть на сцене два мувиклипа. К их методам можно обратиться из главного класса сцены. А можно наоборот? из класса мувика обратиться к методу написанному в главном классе? Или из одного мувика к методу у другого мувика?
Спасибо.
(root as Main).method(); // Если главный класс имеет название Main, но работать будет только после добавления мувика на сцену(т.е. в конструкторе не будет работать)
__________________
С вами был -=Xel'[Naga]

Старый 22.07.2010, 00:12
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 7  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Сообщение от Conso Посмотреть сообщение
Надо из одного клипа, вызвать метод другого который отобразил бы во втором клипе текст полученный из первого.

Добавлено через 30 минут
Второй клип просто рядом т.е. не находится в первом.
Первый объект отправляет наверх событие с информацией о том, какой метод у какого объекта на сцене нужно задействовать.

Родитель обрабатывает это событие и в соответствии с его параметрами дергает нужный метод нужного объекта.

Почитайте вот тут обсуждали похожую задачу:
http://www.flasher.ru/forum/showthread.php?t=142230

Старый 22.07.2010, 00:31
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 8  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Цитата:
Сообщение от mikhailk Посмотреть сообщение
Первый объект отправляет наверх событие с информацией о том, какой метод у какого объекта на сцене нужно задействовать.

Родитель обрабатывает это событие и в соответствии с его параметрами дергает нужный метод нужного объекта.
Зачем тогда по вашему отправлять событие наверх если и так известен и объект и метод?
Можно сразу вызвать этот метод у известного объекта из первого?
__________________
trace("Остановите Землю, я сойду!!!");

Старый 22.07.2010, 00:50
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 9  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Сообщение от Mur4ik Посмотреть сообщение
Зачем тогда по вашему отправлять событие наверх если и так известен и объект и метод?
Можно сразу вызвать этот метод у известного объекта из первого?
Потому что потом будет три объекта.
А однажды десять.
Я вообще, честно говоря, люблю общие решения.

А так - да.
Никто не мешает вообще получать ссылку на второй объект из первого и сразу вызывать нужный метод:
Код AS3:
   // Находим изнутри объекта А объект В с именем "objectB"
   var targetObject:Object = parent.getChildByName("objectB");
   // Вызываем требуемый метод superMetod
   targetObject.superMetod();

Старый 22.07.2010, 00:51
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 10  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
не путайте человека)
Во первых к ооп это не имеет никакого отношения, скорее к архитектурам(патерны итп).
по - хорошему всё описано в первом ответе - пункт 3:

Цитата:
3-й вариант:
Слушать нужные события, по которым и запускать свои методы, т.е если классу Б нужно вызвать метод у класса В, то класс Б посылает некое событие (или что либо подобное кричащее о том что что-то ему нужно), класс В получив такое событие (или узнав что В может то что нужно Б) выполняет требование.
тоже вариант:
Цитата:
Никто не мешает вообще получать ссылку на второй объект из первого и сразу вызывать нужный метод:
нормальный вариант - очень часто используемый.
пример:
имеем главный класс игры(фасад). там создаём контроллер и модель ( можно сказать, что они лежат в фасаде)
в контроллер передаём ссылку на модель. Контроллер, когда надо, запросто вызывает методы модели (часто это сетеры данных)
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 22.07.2010 в 01:00.
Создать новую тему Ответ Часовой пояс GMT +4, время: 22:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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