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

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

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

Регистрация: Nov 2004
Сообщений: 187
Отправить сообщение для whiteRed с помощью ICQ
По умолчанию как вызвать сеттер суперкласса?

Код:
class First{
    private var $num:Number;
    public function get num():Number{
        return $num;
    }
    public function set num(n:Number){ 
        $num = n;
    }
    
    function First(n:Number){
        num = n;
    }
}
Код:
class Second extends First
{
    function Second(n:Number){
        super(n);
    }
    
    public function set num(n:Number){
        trace("second");
        super.num = n; //не работает
//      super.num(n); //тоже не работает
        
    }
    
}
__________________
С моих слов записано верно. Мною прочитано.

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

Регистрация: Sep 2002
Сообщений: 30,787
А никак, кривая реализация сеттеров в AS2.

Старый 19.04.2007, 14:53
whiteRed вне форума Посмотреть профиль Отправить личное сообщение для whiteRed Найти все сообщения от whiteRed
  № 3  
Ответить с цитированием
whiteRed
 
Аватар для whiteRed

Регистрация: Nov 2004
Сообщений: 187
Отправить сообщение для whiteRed с помощью ICQ
чьерт поберьи
__________________
С моих слов записано верно. Мною прочитано.

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

Регистрация: Sep 2002
Сообщений: 30,787
Я их не наследовал никогда, но слышал о проблемах. Видимо, это одна из них.

Старый 19.04.2007, 15:00
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
А как вы поняли, что super.num = n не работает?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Nov 2004
Сообщений: 187
Отправить сообщение для whiteRed с помощью ICQ
Цитата:
Сообщение от iNils
А как вы поняли, что super.num = n не работает?
Код:
var q1 = new First(45);
var q2 = new Second(54);

trace(q1.num);  //45
trace(q2.num);  //undefined
__________________
С моих слов записано верно. Мною прочитано.

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

Регистрация: Nov 2004
Сообщений: 187
Отправить сообщение для whiteRed с помощью ICQ
Код:
class Second extends First
{
	function Second(n:Number){
		super(n);
	}
	
	public function set num(n:Number){
		$num = n;		
	}
}
его даже просто переопределить нельзя!!
__________________
С моих слов записано верно. Мною прочитано.

Старый 19.04.2007, 15:22
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
class First {
	private var n:Number;
	function First(_n:Number){
		__n = _n;
	}
	function set __n(i:Number):Void {
		this.n = i;
	}
	function get __n():Number {
		return this.n;
	}
}
Код:
class Second extends First {
	function Second(n:Number){
		super();
		__n = n;
	}
	function set __n(i:Number):Void {
		this.n = i;
	}
	function get __n():Number {
		return this.n;
	}
}
Код:
var _l1:First = new First(10);
var _l2:Second = new Second(20);
trace(_l1.__n); // 10
trace(_l2.__n); // 20
have fun!
__________________
Hell is the possibility of sanity

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

Регистрация: Sep 2002
Сообщений: 30,787
Ну копипастить описание сеттеров/геттеров каждый сможет

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А что тогда нужно было?.. переопределить? так можно и переопределить или использовать из суперкласса?
Если использовать из суперкласса - просто закоменть сет\гет во втором классе, все будет работать точно так же, если изменить, ну так измени =)
просто super() не принимает никаких параметров, если я ничего не путаю.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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