Показать сообщение отдельно
Старый 12.07.2011, 18:08
BornTOFree вне форума Посмотреть профиль Отправить личное сообщение для BornTOFree Найти все сообщения от BornTOFree
  № 6  
Ответить с цитированием
BornTOFree

Регистрация: Oct 2010
Сообщений: 85
Цитата:
Но что то мне подсказывает, что с классами, а тем более кастомными событиями вы не сталкивались еще.
Что такое классы, инкапсуляция и прочее я знаю

Вот, что такое кастомное событие без понятия, или вы имеете в виду флешевую диспетчерезацию? Можно по подробнее.

Wolsh, ресайз одной кнопки, это как бы не проблема. Вопрос в том, как ресайзить их все разом не делая при этом лишних телодвижений.
Я, к сожалению, не понял сакраментальной необходимости в сеттере, поэтому разродился на два своих варианта, но я уверен, что можно все организовать гораздо более верным способом, надеюсь на понимание.

Перерисовывать графику кнопки/кнопок нет необходимости, так как, повторюсь, кнопки грузятся из свф

Первый вариант
Класс CList - реализует список кнопок ->>
Код AS3:
for(var i:int = 0; i < 4; i++){
 
	cListView = new CListView();
	addChild(cListView);
	cListView.y = Number(cListView.height)*i;
	arrTitle.push(cListView);
 
}
 
public function updateWidth(value:int):void {
	for each (var obj:Object in arrTitle) {
		obj.widthFoo(value)
         }
 
}
Класс CListView визуальное представление кнопки.
В цикле создаются экземпляры кнопок и записываются ссылками в массив.
Метод updateWidth() вызывается, когда изменяется ширина окна в котором находятся кнопки, которые так же должны менять свою ширину(ширина кнопок идентична ширину окна).
При помощи цикла фор ич у всех экземпляров через ссылки вызывается метод widthFoo() в классе кнопки CListView и передаются новые размеры окна.

Этот вариант мне кажется не верным, т.к. необходимо очень часто вызывать метод updateWidth() и соответственно цикл.

Второй вариант


Класс CList - реализует список кнопок ->>
Код AS3:
for(var i:int = 0; i < 4; i++){
 
	cListView = new CListView();
	addChild(cListView);
	cListView.y = Number(cListView.height)*i;
 
}
public function updateWidth(value:int):void {
	CListView._value = value
}
Здесь не нужен массив, а в методе updateWidth() не требуется цикл. В место этого в методе вызывается обновление статической переменной класса CListView регулирующей ширину кнопки.

Но для того чтобы актуальная информация этой переменной была реализована, в классе кнопки CListView вызывается enterframe постоянно, что очень напрягает, как меня так и процессор, тем более если учесть, что кнопок этих может быть значительное кол-во.

Пока что актуален первый вариант. Было бы интересно прочитать комментарии по этим вариантам.
Интересуют другие предложения.