Руководство по actionscript. часть 4, стр. 125

В соответствии с описанными назначениями, в листинге 23.2 представлен вариант реализации класса Ellipse, который приемлем в том случае, когда производительность не имеет решающего значения:

Листинг 23.2. Простейший класс Ellipse

package { import flash. display. Shape;

public class Ellipse extends Shape { private var w:Number; private var h:Number:

public function Ellipse (width:Number, height:Number) { w = width; h = height; draw( );

}

public function setWidth (newWidth:Number):void { w = newWidth; draw( );

}

public function getWidth ( ):Number {

return w;

}

public function setHeight (newHeight:Number):void { h = newHeight; draw( );

}

public function getHeight ( ):Number { return h;

}

private function draw ( ):void { graphics. lineStyle(l); graphics. beginFill(OxFFFFFF, 1); graphics. drawEllipse(0, 0, w, h);

}

}

}

Обратите внимание, что в классе Ellipse есть три места, где происходит изменение данных концептуального эллипса: метод setWidth ( ), метод setHeight ( ) и метод-конструктор класса Ell ipse. Чтобы обеспечить соответствие между концептуальным эллипсом и эллипсом, отображаемым на экране, мы должны убедиться, что перерисовка эллипса, отображаемого на экране, осуществляется в каждом из трех перечисленных мест. Код, представленный в листинге 23.2, для удовлетворения этого требования использует метод решения «в лоб»; он просто вызывает метод draw( ) всякий раз, когда выполняются методы getWidth ( ), getHeight ( ) или метод-конструктор класса Ellipse. Разумеется, если внутри одного цикла обновления экрана эти функции вызываются несколько раз, дублирующие вызовы метода draw ( ) являются избыточными. Это демонстрирует следующий код:

var е:El 1 ipse = new Ellipse (100, 200); // метод draw( ) вызывается здесь e. setWidth(25); // метод draw( ) вызывается здесь снова е. setHeight(50); // метод draw( ) вызывается здесь снова

При выполнении трех предыдущих строк кода метод draw ( ) вызывается три раза, однако на экране будут отображены результаты лишь последнего вызова. Первые два вызова являются избыточными и нерациональными. В простейшем приложении такая избыточность незаметна и, следовательно, может оказаться допустимой. Тем не менее в сложных приложениях подобная избыточность может приводить к тому, что процедуры рисования будут бесполезно выполняться сотни или тысячи раз, представляя собой потенциальный источник серьезных проблем, связанных с производительностью.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 023
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 097
  • 05.08.2014">Альпийская горка – важный элемент ландшафтного дизайна
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.50
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 095
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 136
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.17
  • 22.12.2011">Samsung производит процессоры A5 для Apple iPhone 4S и iPad 2
  • 23.05.2012">Machinima привлекла инвестиций на $35 миллионов благодаря Google
  • 22.07.2011">Интернет – кладезь для меломанов
  • 28.02.2011">Руководство по actionscript. часть 5, стр. 138
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.87
  • 07.10.2010">Подбор цветовой палитры с помощью web — сервиса Adobe Kuler
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 058
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.95
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...