Пакет | flash.display |
Класс | public class Bitmap |
Наследование | Bitmap DisplayObject EventDispatcher Object |
Подклассы | FlexBitmap |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Bitmap()
.
Конструктор Bitmap()
позволяет создать объект Bitmap, содержащий ссылку на объект BitmapData. Создав объект Bitmap, используйте метод addChild()
или addChildAt()
родительского экземпляра DisplayObjectContainer, чтобы добавить растровое изображение в список отображения.
Объект Bitmap может использовать свою ссылку BitmapData совместно с несколькими объектами Bitmap, независимо от свойств сдвига или поворота. Поскольку можно создать несколько объектов Bitmap, ссылающихся на один объект BitmapData, несколько экранных объектов могут использовать один сложный объект BitmapData, что предотвращает чрезмерную загрузку памяти в случае использования индивидуальных объектов BitmapData для каждого экземпляра экранного объекта.
Объект BitmapData можно вызвать на экран объектом Bitmap одним из двух способов: с помощью векторного средства визуализации, такого как фигура, заполненная растровым изображением, или с использованием более быстрой подпрограммы копирования пикселей. Подпрограмма копирования пикселей работает намного быстрее, чем векторное средство визуализации, но объект Bitmap должен соответствовать определенным условиям для его использования.
- К объекту Bitmap не должно применяться растягивание, поворот и наклон.
- К объекту Bitmap не должно применяться преобразование цвета.
- К объекту Bitmap не должен применяться режим наложения.
- Нельзя выполнять обрезку через уровни маски или методы
setMask()
. - Само изображение не должно быть маской.
- Координаты назначения должны находиться на целой пиксельной границе.
Если объект Bitmap загружается не с того домена, на котором находится объект Loader, используемый для загрузки изображения, и не предусмотрено файла политики URL-адресов, предоставляющего доступ к домену объекта Loader, тогда сценарий в этом домене не может получить доступ к объекту Bitmap, его свойствам и методам. Для получения дополнительной информации см. раздел центра разработчиков Flash Player Безопасность.
Примечание. Класс Bitmap не является подклассом класса InteractiveObject, поэтому он не может отправлять события мыши. Однако можно использовать метод addEventListener()
контейнера экранного объекта, содержащего объект Bitmap.
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
accessibilityProperties : AccessibilityProperties
Текущие параметры специальных возможностей для данного экранного объекта. | DisplayObject | ||
alpha : Number
Указывает значение альфа-прозрачности заданного объекта. | DisplayObject | ||
bitmapData : BitmapData
Объект BitmapData, указанный в ссылке. | Bitmap | ||
blendMode : String
Значение класса BlendMode, задающее режим наложения. | DisplayObject | ||
blendShader : Shader [только для записи]
Задает затенение, используемое при наложении переднего плана на фон. | DisplayObject | ||
cacheAsBitmap : Boolean
При значении true среда выполнения Flash кэширует внутреннее растровое представление экранного объекта. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
Если задано ненулевое значение, данный объект Matrix определяет способ визуализации экранного объекта, когда свойство cacheAsBitmap имеет значение true. | DisplayObject | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
filters : Array
Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом. | DisplayObject | ||
height : Number
Указывает высоту экранного объекта в пикселях. | DisplayObject | ||
loaderInfo : LoaderInfo [только для чтения]
Возвращает объект LoaderInfo, содержащий сведения о загрузке файла, к которому принадлежит этот экранный объект. | DisplayObject | ||
mask : DisplayObject
Вызывающий экранный объект маскируется заданным объектом mask. | DisplayObject | ||
metaData : Object
Получает объект метаданных экземпляра DisplayObject, если метаданные хранились вместе с экземпляром этого DisplayObject в SWF-файле через тег PlaceObject4. | DisplayObject | ||
mouseX : Number [только для чтения]
Указывает координату x мыши или курсора пользовательского ввода (в пикселях). | DisplayObject | ||
mouseY : Number [только для чтения]
Указывает координату y мыши или курсора пользовательского ввода (в пикселях). | DisplayObject | ||
name : String
Указывает имя экземпляра DisplayObject. | DisplayObject | ||
opaqueBackground : Object
Определяет, является ли экранный объект непрозрачным с определенным цветом фона. | DisplayObject | ||
parent : DisplayObjectContainer [только для чтения]
Указывает объект DisplayObjectContainer, содержащий данный экранный объект. | DisplayObject | ||
pixelSnapping : String
Определяет, должен ли объект Bitmap быть привязанным к ближайшему пикселю. | Bitmap | ||
root : DisplayObject [только для чтения]
В случае с экранным объектом в загруженном SWF-файле свойством root является самый верхний экранный объект в части структуры дерева списка отображения, представленной этим SWF-файлом. | DisplayObject | ||
rotation : Number
Указывает поворот экземпляра DisplayObject относительно его исходной ориентации (в градусах). | DisplayObject | ||
rotationX : Number
Обозначает поворот в градусах по оси x экземпляра DisplayObject относительно исходной ориентации по трехмерному вышестоящему контейнеру. | DisplayObject | ||
rotationY : Number
Обозначает угол поворота в градусах по оси у экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. | DisplayObject | ||
rotationZ : Number
Обозначает поворот в градусах по оси z экземпляра DisplayObject от исходной ориентации относительно трехмерного родительского контейнера. | DisplayObject | ||
scale9Grid : Rectangle
Текущая активная сетка масштабирования. | DisplayObject | ||
scaleX : Number
Указывает горизонтальное масштабирование объекта от точки регистрации (в процентах). | DisplayObject | ||
scaleY : Number
Указывает вертикальное масштабирование объекта от точки регистрации (в процентах). | DisplayObject | ||
scaleZ : Number
Указывает глубину масштабирования объекта (в процентах) относительно точки регистрации этого объекта. | DisplayObject | ||
scrollRect : Rectangle
Прямоугольная область прокрутки экранного объекта. | DisplayObject | ||
smoothing : Boolean
Определяет, следует ли сглаживать растровое изображение при масштабировании. | Bitmap | ||
stage : Stage [только для чтения]
Класс Stage экранного объекта. | DisplayObject | ||
transform : flash.geom:Transform
Объект со свойствами, относящимися к матрице, преобразованию цвета и пиксельным границам экранного объекта. | DisplayObject | ||
visible : Boolean
Определяет видимость экранного объекта. | DisplayObject | ||
width : Number
Указывает ширину экранного объекта в пикселях. | DisplayObject | ||
x : Number
Указывает координату x экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. | DisplayObject | ||
y : Number
Указывает координату y экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. | DisplayObject | ||
z : Number
Указывает положение по оси z экземпляра DisplayObject относительно трехмерного родительского контейнера. | DisplayObject |
Метод | Определено | ||
---|---|---|---|
Инициализирует объект Bitmap для ссылки на заданный объект BitmapData. | Bitmap | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
Посылает событие в поток событий. | EventDispatcher | ||
Возвращает прямоугольник, определяющий область объекта отображения, которая относится к системе координат объекта targetCoordinateSpace. | DisplayObject | ||
Возвращает прямоугольник, определяющий границу объекта отображения по системе координат, определенной параметром targetCoordinateSpace за исключением линий фигур. | DisplayObject | ||
Преобразует объект Point из координат рабочей области (глобальных) в координаты отображаемого объекта (локальные). | DisplayObject | ||
Преобразует двумерный объект Point из координат рабочей области (глобальных) в координаты экранного трехмерного объекта (локальные). | DisplayObject | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Вычисляет ограничительную рамку экранного объекта, чтобы определить, не перекрывает и не пересекает ли она ограничительную рамку экранного объекта obj. | DisplayObject | ||
Вычисляет экранный объект, чтобы определить, перекрывает ли он точку, заданную координатами x и y, или пересекает ее. | DisplayObject | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Преобразует трехмерный объект point из координат трехмерного экранного объекта (локальных) в двухмерный объект point с координатами рабочей области (глобальными). | DisplayObject | ||
Преобразует объект Point из координат экранного объекта (локальных) в координаты рабочей области (глобальные). | DisplayObject | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
bitmapData | свойство |
bitmapData:BitmapData
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Объект BitmapData, указанный в ссылке.
Реализация
public function get bitmapData():BitmapData
public function set bitmapData(value:BitmapData):void
pixelSnapping | свойство |
pixelSnapping:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Определяет, должен ли объект Bitmap быть привязанным к ближайшему пикселю. Класс PixelSnapping включает возможные значения:
PixelSnapping.NEVER
— Привязка к пикселям не выполняется.PixelSnapping.ALWAYS
— Изображение всегда привязывается к ближайшему пикселю, независимо от преобразования.PixelSnapping.AUTO
— Изображение привязывается к ближайшему пикселю, если не выполнялось вращение или наклон, а также если оно отображено в масштабе от 99,9% до 100,1%. Если эти условия удовлетворяются, растровое изображение отображается в масштабе 100% с привязкой к ближайшему пикселю. На внутреннем уровне это значение позволяет показывать изображение с максимальной быстротой с помощью векторного средства визуализации.
Реализация
public function get pixelSnapping():String
public function set pixelSnapping(value:String):void
smoothing | свойство |
smoothing:Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Определяет, следует ли сглаживать растровое изображение при масштабировании. При значении true
растровое изображение смягчается при масштабировании. При значении false
растровое изображение не смягчается при масштабировании.
Реализация
public function get smoothing():Boolean
public function set smoothing(value:Boolean):void
Bitmap | () | Конструктор |
public function Bitmap(bitmapData:BitmapData = null, pixelSnapping:String = "auto", smoothing:Boolean = false)
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Инициализирует объект Bitmap для ссылки на заданный объект BitmapData.
ПараметрыbitmapData:BitmapData (default = null ) — Объект BitmapData, указанный в ссылке.
| |||
pixelSnapping:String (default = "auto ") — Определяет, должен ли объект Bitmap быть привязанным к ближайшему пикселю.
| |||
smoothing:Boolean (default = false ) — Определяет, следует ли сглаживать растровое изображение при масштабировании. В следующих примерах показано то же растровое изображение, отмасштабированное с фактором 3, при smoothing в значении false (слева) и true (справа).
|
Пример ( Использование этого примера )
const IMAGE_URL:String = "http://www.helpexamples.com/flash/images/logo.png"; var ldr:Loader = new Loader(); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete); ldr.load(new URLRequest(IMAGE_URL)); var bitmap1:Bitmap; var bitmap2:Bitmap; var bitmap3:Bitmap; var bitmap4:Bitmap; function ldr_complete(evt:Event):void { var bmp:Bitmap = ldr.content as Bitmap; bitmap1 = new Bitmap(bmp.bitmapData); bitmap1.x = 100; bitmap1.y = 100; bitmap1.rotation = 0; addChild(bitmap1); bitmap2 = new Bitmap(bmp.bitmapData); bitmap2.x = 200; bitmap2.y = 100; bitmap2.rotation = 90; addChild(bitmap2); bitmap3 = new Bitmap(bmp.bitmapData); bitmap3.x = 300; bitmap3.y = 100; bitmap3.rotation = 180; addChild(bitmap3); bitmap4 = new Bitmap(bmp.bitmapData); bitmap4.x = 400; bitmap4.y = 100; bitmap4.rotation = 270; addChild(bitmap4); }
threshold()
. Это можно сделать, выполнив следующие действия.
- Создается свойство
url
, описывающее местоположение и имя файла изображения. - Конструктор класса вызывает метод
configureAssets()
, который в свою очередь вызывает методcompleteHandler()
. configureAssets()
создает объект Loader, который затем создает экземпляр прослушивателя событий, отправляемых по завершении обработки изображения методомcompleteHandler()
.- Затем метод
buildChild()
создает новый экземпляр объекта URLRequest,request
, и передаетurl
, чтобы сообщить имя и местоположение файла. - Объект
request
передается методуloader.load()
, который загружает изображение в память через экранный объект. - После этого изображение добавляется в список отображения, который почти сразу показывает изображение на экране в положении с координатами x = 0, y = 0.
- Затем метод
completeHandler()
выполняет следующие задачи:- Создает второй объект Loader и инициализированный вместе с ним объект Bitmap.
- Создает второй объект Bitmap,
duplicate
, который в свою очередь вызывает методduplicateImage()
, создающий дубликат исходного изображения. - Создает объект BitmapData, который назначается объекту BitmapData объекта
duplicate
. - Создает новый объект Rectangle, инициализированный с теми же координатами, шириной и высотой, что и исходное изображение.
- Создает новый объект Point с координатами по умолчанию: x = 0, y = 0.
- Создает следующие переменные:
operation
: применяет новый цвет, когда пороговое значение больше исходного или равно ему.threshold
: значение, с которым сравнивается каждый пиксель, — светло-серый цвет с альфа-значением 0xCC.color
: цвет, который будет задан пикселям, проходящим пороговый тест, — в данном случае это сплошной желтый цвет.mask
: задается диаметрально противоположный цвет (прозрачный синий).copySource
: получает значение false, указывающее на то, что значения пикселей не копируются в том случае, если пороговое значение не проходит. Это значение не имеет смысла, потому что изображение продублировано и изменяются только пиксели, прошедшие пороговый тест.
- Вызывает метод
threshold()
с использованием предшествующих переменных. В результате мы получаем уравнение порога:if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00
.
Примечания.
- SWF-файл потребуется откомпилировать с установленным для параметра «Безопасность локального воспроизведения» режимом «Доступ только к локальным файлам».
- Данный пример требует, чтобы файл с именем Image.gif находился в том же каталоге, что и SWF-файл.
- Рекомендуем использовать изображение с шириной до 80 пикселей.
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class BitmapExample extends Sprite { private var url:String = "Image.gif"; private var size:uint = 80; public function BitmapExample() { configureAssets(); } private function configureAssets():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.x = size * numChildren; loader.load(request); addChild(loader); } private function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap = new Bitmap(original.bitmapData.clone()); image.x = size * numChildren; addChild(image); return image; } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); var duplicate:Bitmap = duplicateImage(image); var bitmapData:BitmapData = duplicate.bitmapData; var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var destPoint:Point = new Point(); var operation:String = ">="; var threshold:uint = 0xCCCCCCCC; var color:uint = 0xFFFFFF00; var mask:uint = 0x000000FF; var copySource:Boolean = true; bitmapData.threshold(bitmapData, sourceRect, destPoint, operation, threshold, color, mask, copySource); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
Tue Jun 12 2018, 11:34 AM Z