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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.08.2010, 15:16
LEXiy вне форума Посмотреть профиль Отправить личное сообщение для LEXiy Посетить домашнюю страницу LEXiy Найти все сообщения от LEXiy
  № 1  
Ответить с цитированием
LEXiy
 
Аватар для LEXiy

Регистрация: Jan 2006
Сообщений: 66
Cool Предок классов

Вопрос скорее глупый, но мне интересный
Допустим есть некий ролик (который не будет менятся в будущем) и есть несколько других роликов (разные по содержанию и смыслу, но имеющие одинаковые методы), они будут служить "Скинами"
Задача первого ролика загружать в себя "скин" и отправлять в него настройки. Так вот.. Каждый скин будет обрабатывать настройки по-разному, а первый ролик должен быть уверен, что методы обработки в них во всех есть.

Есть пара мыслей как это сделать:
1. Создать "скинам" общего предка с пустыми ( ) методами, а в дальнейшем их оверрайдить
2. Опять создать общего предка, а в методах диспатчитьЕвент
3. Сделать интерфейс... Малопонятный для меня способ.

Подскажите кто знает. Как сделать так, чтобы потом мне перед внуками не было стыдно, что я это сделал?
__________________
Делаем так и перетакивать не будем!

Старый 09.08.2010, 15:48
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 2  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
думаю, 3-й способ
Создаете интерфейс, описываете в нем сигнатуры всех необходимых методов для классов-скинов
Классы флэшек-скинов должен реализовывать этот интерфейс. Если какой-то метод в таком классе будет отсутствовать - ролик скина просто не скомпилируется
Если в каких-то методах есть что-то общее для всех скинов, то создайте супер класс и соотвественно в наследниках оверрайдите методы там где это необходимо...
__________________
freelance | Раздор

Старый 09.08.2010, 15:56
LEXiy вне форума Посмотреть профиль Отправить личное сообщение для LEXiy Посетить домашнюю страницу LEXiy Найти все сообщения от LEXiy
  № 3  
Ответить с цитированием
LEXiy
 
Аватар для LEXiy

Регистрация: Jan 2006
Сообщений: 66
Ок! Спасибо!
А можно в классе одновременно extends класс и implement интерфейс??

...и еще! Как тогда в главном ролике писать?
Код AS3:
var newChild:Sprite = /* что-нибудь */;
(newChild as ISkin).getParams(...);
Так?
__________________
Делаем так и перетакивать не будем!


Последний раз редактировалось LEXiy; 09.08.2010 в 15:59.
Старый 09.08.2010, 16:23
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Я передаю класс скина, а компонент уже приводит его к определенному типу, и далее управляет его свойствами и методами.

Старый 09.08.2010, 16:24
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 5  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от LEXiy Посмотреть сообщение
Ок! Спасибо!
А можно в классе одновременно extends класс и implement интерфейс??
да, можно

насчет второго вопроса.. а зачем приводить newChild к ISkin?
в классе newChild должен быть реализован метод getParams по-любому

Код AS3:
var newChild:Skin = new Skin() // новый объект скина
newChild.getParams(...);
__________________
freelance | Раздор

Старый 09.08.2010, 16:29
LEXiy вне форума Посмотреть профиль Отправить личное сообщение для LEXiy Посетить домашнюю страницу LEXiy Найти все сообщения от LEXiy
  № 6  
Ответить с цитированием
LEXiy
 
Аватар для LEXiy

Регистрация: Jan 2006
Сообщений: 66
Ну так это... Скины-то разные должны быть.
И Классы соответственно разные. Если им не создавать общего предка, то ближайший родственник - это Sprite (или типа того), а у него нет метода getParams
__________________
Делаем так и перетакивать не будем!

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Код AS3:
var newChild:ISkin = new Skin();
newChild.getParams(...);
Так как все скины имплементят ISkin, будет работать для всех.
__________________
ranga

Старый 09.08.2010, 16:47
LEXiy вне форума Посмотреть профиль Отправить личное сообщение для LEXiy Посетить домашнюю страницу LEXiy Найти все сообщения от LEXiy
  № 8  
Ответить с цитированием
LEXiy
 
Аватар для LEXiy

Регистрация: Jan 2006
Сообщений: 66
Цитата:
Сообщение от incvizitor Посмотреть сообщение
Код AS3:
var newChild:ISkin = new Skin();
newChild.getParams(...);
Так как все скины имплементят ISkin, будет работать для всех.
О! А так, значит, можно? (назначать интерфейсу экземпляр класса)
Круто! Буду пробовать.
__________________
Делаем так и перетакивать не будем!

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Ну как бы вы не интерфейсу присваиваете, а объекту.

Код AS3:
var newChild:ISkin;
Означает что переменной newChild можно присвоить объект некого класса имплементируещего ISkin.
__________________
ranga

Старый 11.08.2010, 11:47
LEXiy вне форума Посмотреть профиль Отправить личное сообщение для LEXiy Посетить домашнюю страницу LEXiy Найти все сообщения от LEXiy
  № 10  
Ответить с цитированием
LEXiy
 
Аватар для LEXiy

Регистрация: Jan 2006
Сообщений: 66
Что-то вот это вот:
Код AS3:
var newChild:ISkin = new Skin();
newChild.getParams(...);
не получается.

Ай ну да ладно! Сделаю им общего предка с пустыми функциями... Всем спасибо!
__________________
Делаем так и перетакивать не будем!

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

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

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


 


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


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