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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.09.2010, 02:13
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 1  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
По умолчанию доступ к субклассу из суперкласса

всем привет!
такой вот уменя вопрос
создаю я к примеру супер класс:
Код AS3:
package  {
 
	public class MyObject extends Sprite{
 
		public function MyObject() {
		}
        }
}
потом создаю суб-класс:
Код AS3:
package  modules{
 
	public class SubMyObject extends MyObject{
 
		public var myParam:String = "Hello";
                public function SubMyObject() 
		{
		}//end constructor
        }
}
теперь где либо дальше у себя в коде создаю например экземпляр subMyObject:
Код AS3:
 var subMyObject:SubMyObject = new SubMyObject()

вопрос: можно ли как то в супер классе(MyObject) достучаться к перемнной myParam ? или нужно делать так типа
Код AS3:
super.init(myParam)
а в суперклассе уже ловить в функции init?
__________________
мира и гармонии

Старый 12.09.2010, 02:29
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Что то непонятно вы описали взаимодейтсвие. Особенно вот это :
Цитата:
теперь где либо дальше у себя в коде создаю например экземпляр subMyObject:
В любом месте какого класса, супер или суб?! Это важно, чтобы вас понять.

Ну а вообще если только перменную надо вывести и она у вас public const , то импортируем класс создаем новый экземпляр и выводим что надо. Тоесть если отвечать на вопрос
Цитата:
вопрос: можно ли как то в супер классе(MyObject) достучаться к перемнной myParam ? или нужно делать так типа
Который вы возможно задали не верно то ответ вот он

Код AS3:
package  {
        import modules.SubMyObject;
 
	public class MyObject extends Sprite{
 
		public function MyObject() {
                  trace(SubMyObject.myParam)
		}
        }
}
Добавлено через 3 минуты
Или да

Код AS3:
package  {
 
	public class MyObject extends Sprite{
 
		public function MyObject() {
		} 
               public function init(...params) {
                trace(params as Array); }
        }
}


Последний раз редактировалось in4core; 12.09.2010 в 02:32.
Старый 12.09.2010, 02:45
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 3  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Который вы возможно задали не верно то ответ вот он
Неправильный ответ

Код AS3:
super.init(myParam)
А вот это - правильный ответ


Ура!!! - мой тысячный пост =)
готов принимать поздравления
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 12.09.2010 в 02:47.
Старый 12.09.2010, 10:13
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 4  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
я вот честно не понял, почему суперкласс вообще зависит от наследуемого?
Суперклас должен быть независим, а крутить все что нужно должен уже наследуемый.

Старый 12.09.2010, 14:19
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 5  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
всем спасибо! gloomyBrain - принимайте поздравления, 1к это не три скрипта ***сать спасибо за ответы, идеи и предложения!

теперь по порядку:
то in4core
я имею ввиду что класс subMyObject я буду использовать просто гдето в моем приложении (тоесть вообще не свзяанным с MyObject)

наврно стоит подробнее описать то что я делаю

реализация "резины": у меня есть объекты котороых объеденяет то что они должны менять свое положение в зависимости от размеров сайта и потом менять свои координаты если бразузер ресайзится. Вот и я подумал что хоть гдето впервые в жизни можно использовать наследование вот и создаю базовый класс в котором описываю "общее" поведение для всех объектов что будут на сайте! потом создаю собственно сами объекты-классы и расширяю их базовым (и передаю через super.init параметры типа позиции горизонтали и вертикали) вот! но чегото подумал что можно без инита обойтись и решил спросить

i.o вот у меня как то выходит что зависит, - в зависимости от параметров которые заданы для суб-класса , супер класс ведет себя по разному (но случаев не мгого всего 6, а объектов может быть много поэтому и решил использовать наследование)

спаисбо за ответы!
__________________
мира и гармонии

Старый 12.09.2010, 14:42
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 6  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
тогда правильно использовать super.init, т.к суперкласс не зависит в этом случае от наследуемого.

gloomyBrain, поздравляю! )

Старый 12.09.2010, 20:33
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 7  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Помоему, это канонический случай "Шаблонного метода" (довольно часто используется, т.е. метод родителя делегирует часть своих обязанностей потомкам - в данном примере это конструктор и делегирует он всего навсего определение значения "myParam"):

Код AS3:
package  {
 
	public class MyObject extends Sprite{
                protected function getMyParam():String
                {
                         return "My default parameter";
                }
		public function MyObject() {
                          trace (getMyParam());
		}
        }
}
 
 
package  modules{
 
	public class SubMyObject extends MyObject{
                override protected function getMyParam():String
                {
                        return "Hello";
                }
 
                public function SubMyObject() 
		{
		}//end constructor
        }
}
При создании SubMyObject будет выведено "Hellow".


Последний раз редактировалось expl; 12.09.2010 в 20:36.
Старый 12.09.2010, 22:55
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 8  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
да, спасибо - override - замечательная возможность
__________________
мира и гармонии

Старый 13.09.2010, 12:08
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от gloomyBrain Посмотреть сообщение
Ура!!! - мой тысячный пост =)
готов принимать поздравления
слабак

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
*надулся, встал в закрытую позу и делает вид что ему все равно*
__________________
...вселенская грусть

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

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

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


 


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


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