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

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

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

Регистрация: May 2011
Сообщений: 4
Question Ошибка компиляции 1059: Cвойство "только на чтение"

Есть такой класс (не целиком, кусок):
Код AS3:
public class ColoredBrush implements Brush {
        private var col:uint;
        private var w:int;
        private var h:int;
        private var cX:int;
        private var cY:int;
        private var dataArray:Array;
 
        public function ColoredBrush(pixelsData:Array,
                                     color:uint = 0xFF000000,
                                     centerX:int = 0,
                                     centerY:int = 0) {
            this.centerX = centerX; //Здесь возникает ошибка (сабж)
            this.pixelsData=pixelsData;//Здесь тоже использую get - set, тоже ошибка
 
            this.cY = centerY;//Здесь ошибки нет!
            this.col = color;//Ошибки нет!
        }
 
        public function get centerX():int{
            return cX;
        }
 
        protected function set centerX(newCenterX:int):void{
		if(newCenterX>=w||newCenterX<0) throw new ArgumentError("CenterX is invalid!",3);
		cX = newCenterX;
	}
 
         //другие методы
 
}
Подскажите, пожалуйста, в чем проблема

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Попробуйте задать методу set centerX модификатор доступа public.
Выдержка из хелпа:
Цитата:
[ключевое слово set] Определяет установщик — метод, отображаемый в общедоступном интерфейсе как свойство.


Последний раз редактировалось bav; 01.08.2011 в 21:16. Причина: Уточнение.
Старый 01.08.2011, 21:15
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 3  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Код AS3:
public function get centerX():int{
    return cX;
}
 
public function set centerX( value:int ) : void {
    this.cX = value;
}

Старый 01.08.2011, 21:16
Leopardile вне форума Посмотреть профиль Отправить личное сообщение для Leopardile Найти все сообщения от Leopardile
  № 4  
Ответить с цитированием
Leopardile

Регистрация: May 2011
Сообщений: 4
Действительно, помогло.
Но желательно сделать так, чтобы эти свойства могли устанавливаться только в теле классов-потомков.
Выход - использовать обычные методы, но с get-set было бы лучше.
Никак не получится?

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

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Код AS3:
private var cX:int;
поменяйте на
Код AS3:
protected var cX:int;
должно помочь. Объявление сеттера вроде бы не запрещено в классе-потомке.

Старый 01.08.2011, 21:23
Leopardile вне форума Посмотреть профиль Отправить личное сообщение для Leopardile Найти все сообщения от Leopardile
  № 6  
Ответить с цитированием
Leopardile

Регистрация: May 2011
Сообщений: 4
Спасибо огромное за помощь! Теперь понял, как это сделать.
Читал Колина Мука, он не писал про общедоступность set- и get- методов


Последний раз редактировалось Leopardile; 01.08.2011 в 21:27.
Старый 01.08.2011, 23:11
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 7  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Дело не в общедоступности, а в том, что геттер и сеттер должны быть с одинаковым модификатором доступа. Исключение составляют только пространства имен, с их помощью можно и разный доступ назначить.
__________________
משיח לא בא
משיח גם לא מטלפן

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

Теги
1059 , ошибка компиляции

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

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


 


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


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