Руководство по 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

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

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

Полезные ссылки
Случайные записи
  • 15.02.2014">Как установить розетку?
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 032
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 069
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 036
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 073
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.157
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.52
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.33
  • 06.08.2011">Функция автосохранения в Photoshop
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 061
  • 17.03.2011">Руководство по actionscript. часть 3, стр. 002
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 081
  • 12.09.2014">Помост на декоративном водоеме
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 142
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.45
Опрос

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

View Results

Loading ... Loading ...