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

Любое значение канала Alpha, указываемое в числе, которое передается в метод setPixel ( ), будет проигнорировано. Например, в следующем коде мы присваиваем значение цвета пиксела, используя число, в котором для канала Alpha указано значение сс. Несмотря на это, после завершения операции значением цвета левого верхнего пиксела по-прежнему будет являться число 0x66FFFFFF:

imgData. setPixeKO. 0. OxCCFFFFFF);

Повышение производительности с помощью метода BitmapData. lockC)

По умолчанию, всякий раз, когда над некоторым объектом BitmapData вызывается метод setPixel32 ( ) или setPixel ( ), экземпляры класса Bitmap, ссылающиеся на этот объект, получают уведомление об изменении данных. Когда методы setPixel32( ) или setPixel ( ) вызываются друг за другом внутри одного цикла кадра (например, когда каждому пикселу в растровом изображении присваивается значение цвета), подобные уведомления могут привести к снижению производительности. Для повышения производительности мы можем использовать метод экземпляра lock ( ) класса BitmapData.

Вызов метода lock ( ) над объектом BitmapData запрещает среде выполнения Flash уведомлять зависимые объекты В i tmap при вызове методов setPixel32( ) или setPixel ( ). Таким образом, если вы собираетесь использовать методы setPixel32 ( ) или setPixel ( ) друг за другом, всегда вызывайте метод lock ( ). После его вызова присвойте все желаемые значения цвета пикселов; затем вызовите метод экземпляра unlock ( ) класса BitmapData. Метод unlock ( ) позволяет среде Flash при необходимости уведомить все зависимые объекты Bitmap.

Данный подход продемонстрирован в листинге 26.5. В этом коде используется цикл для присваивания случайного цвета каждому пикселу в объекте BitmapData размером 500 х 500 пикселов. Обратите внимание на вызов метода lock ( ) перед циклом и вызов метода unlock ( ) после цикла, выделенные полужирным шрифтом.

Листинг 26.5. Использование метода BitmapData. lock() для повышения производительности

// Создаем растровое изображение

var imgData:BitmapData = new BitmapData(500. 500. true. 0×00000000); var bmp:Bitmap = new Bitmap(imgData);

// Вызываем метод lock( ) imgData. lock( );

// Устаналиваем значения цвета пикселов var col or:uint;

for (var i:int = 0; i < imgdata.height ; i++) { for (var j:int = 0; j < imgdata.width; j++) { color = math.f1oor(math.random( )*0xffffffff); imgdata.setpixel32(j, i, color);

}

}

// Вызываем метод unlock( ) imgData. unlock( );

При тестировании кода из листинга 26.5 в рабочей версии приложения Flash Player на компьютере с процессором Pentium 4 2,6 ГГц одна итерация цикла занимает приблизительно 100 мс. Без использования метода lock ( ) одна итерация занимает примерно 125 мс. Иными словами, при использовании метода lock ( ) код выполняется приблизительно на 20 % быстрее.

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

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

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

Полезные ссылки
Случайные записи
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.114
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.54
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 143
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 061
  • 13.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.88
  • 06.03.2013">Sony готовится ответ HTC One
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 099
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.17
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.16
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 054
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.15
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 078
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 012
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.99
  • 03.08.2010">Сравнение параметров дизайна
Опрос

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

View Results

Loading ... Loading ...