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

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

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Приводить можно к родителям или к их родителям и так далее.
Вы похожи на папу, а не папа похож на вас. Таким образом можно объявить переменную типа ПАПА, а создать ВАС. Но нельзя объявить вас и создать папу.

Sprite папа MovieClipa
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 14.11.2011, 15:36
goldlider вне форума Посмотреть профиль Отправить личное сообщение для goldlider Найти все сообщения от goldlider
  № 22  
Ответить с цитированием
goldlider

Регистрация: Jun 2010
Сообщений: 120
Цитата:
Сообщение от GBee Посмотреть сообщение
Приводить можно к родителям или к их родителям и так далее.
Вы похожи на папу, а не папа похож на вас. Таким образом можно объявить переменную типа ПАПА, а создать ВАС. Но нельзя объявить вас и создать папу.

Sprite папа MovieClipa
Я знаю, что Sprite яв-ся папой для MovieClip. Этот пример
Код AS3:
var ObjectSprite:MovieClip = new Sprite();
ObjectSprite as MovieClip;
я приводил из слов Котяры.

Котяра говорит, что должно быть так
Код AS3:
msg:B = new C(); // class B extends C
(msg as C).helloBoys
Папа в данном случае класс B, а ребенок класс C. Так как в таком случае может переменная типа B к ребенку C.
Следовательно ошибка возникает верно. Мы не можем вызывать метод описанный в ребенке, если этот ребенок не расширяет родительский класс B.
Я же говорю так
Код AS3:
msg:B = new C(); // class C extends B
(msg as C).helloBoys

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Таким образом можно объявить переменную типа ПАПА, а создать ВАС. Но нельзя объявить вас и создать папу.
Код AS3:
var ObjectSprite:Sprite = new MovieClip(); //ЗЯ
Код AS3:
var ObjectSprite:MovieClip = new Sprite(); //НЕЛЬЗЯ
Котяра перепутал малек в A B C ваших.

Цитата:
Конструкция
Цитата:
msg:B
(msg as C)
сработает только если B extends C или B implement С, но никак не наоборот
Код AS3:
msg:B = new C(); // class B extends C НЕЛЬЗЯ
msg:С = new B(); // class B extends C МОЖНО
 
msg:B = new C(); // class C extends B МОЖНО
msg:С = new B(); // class C extends B НЕЛЬЗЯ
Папа умеет говорить ТОЛЬКО "привет, девочки"
Вы умеете говорить "привет, мальчики" - (daddy as I).приветМальчики(), но только при условии что в переменная daddy указывает на объект класса I (который расширяет Daddy)
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.


Последний раз редактировалось GBee; 14.11.2011 в 16:06. Причина: Наврал
Старый 14.11.2011, 15:57
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 24  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Да, верно))
Только если в переменную msg действительно записана ссылка на объект класса С, иначе получите null.
__________________
Reality.getBounds(this);

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
class Я extends Папа

Я расширяю Папу :о) Папа в ООП проще.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Я бы просто посоветовал напрячься и изжить из своего сознания употребление терминов Parent/Child (папа/я, родитель/ребенок) при разговоре о наследовании. Поможет избежать разных неприятных ситуаций, ибо эти термины не имеют никакого отношения к наследованию (хотя иногда употребляют выражение "родительский класс" вместо суперкласс, но думаю никто никогда не слышал о "детском классе").
__________________
Reality.getBounds(this);

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
По правде сказать я уже сам запутался.

Короче

Код AS3:
class Daddy
{daddyMethod();}
 
class Son extends Daddy
{sonMethod();}
 
//var s:Son = new Daddy(); Нельзя
var d:Daddy = new Son(); //Можно
 
//1
d.daddyMethod(); //Можно
(d as Son).sonMethod(); //Можно
 
//2
var d:Daddy = new Daddy(); //Можно
d.daddyMethod(); //Можно
//(d as Son).sonMethod(); //Нельзя null.sonMethod();
Добавлено через 2 минуты
Цитата:
Я бы просто посоветовал напрячься и изжить из своего сознания употребление терминов Parent/Child (папа/я, родитель/ребенок) при разговоре о наследовании. Поможет избежать разных неприятных ситуаций, ибо эти термины не имеют никакого отношения к наследованию (хотя иногда употребляют выражение "родительский класс" вместо суперкласс, но думаю никто никогда не слышал о "детском классе").
Это попытка в натуральном виде объяснить. Иначе придется в биологию лезть, парнокопытные -> лошадка
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 14.11.2011, 16:39
goldlider вне форума Посмотреть профиль Отправить личное сообщение для goldlider Найти все сообщения от goldlider
  № 28  
Ответить с цитированием
goldlider

Регистрация: Jun 2010
Сообщений: 120
Всем большое спасибо за помощь. Реально помогли разобраться с простыми вещами.

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

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

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


 


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


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