Главная / Action Script 3
Пакетflash.display
Классpublic class Sprite
НаследованиеSprite Inheritance DisplayObjectContainer Inheritance InteractiveObject Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object
Подклассы FLVPlayback, FLVPlaybackCaptioning, HTMLLoader, MovieClip, UIComponent

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Класс Sprite является базовым стандартным блоком списка отображения: это узел списка отображения, который способен отображать графику, а также может содержать дочерние элементы.

Объект Sprite напоминает фрагмент ролика, но не имеет временной шкалы. Sprite — это подходящий базовый класс для объектов, не требующих временной шкалы. Например, будет логично использовать класс Sprite в качестве базы для компонентов пользовательского интерфейса, для которых обычно не используется временная шкала.

Класс Sprite впервые введен в ActionScript 3.0. Это альтернатива функциям класса MovieClip, сохраняющая все возможности предыдущих версий ActionScript с целью обеспечения совместимости.

Посмотреть примеры

См. также

Основные классы показа


Общедоступные свойства
 СвойствоОпределено
 InheritedaccessibilityProperties : AccessibilityProperties
Текущие параметры специальных возможностей для данного экранного объекта.
DisplayObject
 Inheritedalpha : Number
Указывает значение альфа-прозрачности заданного объекта.
DisplayObject
 InheritedblendMode : String
Значение класса BlendMode, задающее режим наложения.
DisplayObject
 InheritedblendShader : Shader
[только для записи] Задает затенение, используемое при наложении переднего плана на фон.
DisplayObject
  buttonMode : Boolean
Задает режим кнопки данного спрайта.
Sprite
 InheritedcacheAsBitmap : Boolean
При значении true проигрыватель Flash Player кэширует внутреннее растровое представление экранного объекта.
DisplayObject
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
 InheritedcontextMenu : ContextMenu
Определяет контекстное меню, связанное с данным объектом.
InteractiveObject
 InheriteddoubleClickEnabled : Boolean
Определяет, получает ли объект события doubleClick.
InteractiveObject
  dropTarget : DisplayObject
[только для чтения] Определяет экранный объект, над которым перетаскивается спрайт, либо на котором спрайт был отпущен.
Sprite
 Inheritedfilters : Array
Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом.
DisplayObject
 InheritedfocusRect : Object
Задает отображение прямоугольной рамки индикатора фокуса для данного объекта.
InteractiveObject
  graphics : Graphics
[только для чтения] Задает объект Graphics, принадлежащий данному спрайту, в котором могут выполняться команды векторного рисования.
Sprite
 Inheritedheight : Number
Указывает высоту экранного объекта в пикселах.
DisplayObject
  hitArea : Sprite
Определяет другой спрайт в качестве области щелчка для спрайта.
Sprite
 InheritedloaderInfo : LoaderInfo
[только для чтения] Возвращает объект LoaderInfo, содержащий сведения о загрузке файла, к которому принадлежит этот экранный объект.
DisplayObject
 Inheritedmask : DisplayObject
Вызывающий экранный объект маскируется заданным объектом mask.
DisplayObject
 InheritedmouseChildren : Boolean
Определяет, включен ли переход между потомками объекта с помощью мыши.
DisplayObjectContainer
 InheritedmouseEnabled : Boolean
Определяет, получает ли этот объект сообщения мыши.
InteractiveObject
 InheritedmouseX : Number
[только для чтения] Указывает координату x положения курсора мыши (в пикселах).
DisplayObject
 InheritedmouseY : Number
[только для чтения] Указывает координату y положения курсора мыши (в пикселах).
DisplayObject
 Inheritedname : String
Указывает имя экземпляра DisplayObject.
DisplayObject
 InheritednumChildren : int
[только для чтения] Возвращает число потомков данного объекта.
DisplayObjectContainer
 InheritedopaqueBackground : Object
Определяет, является ли экранный объект непрозрачным с определенным цветом фона.
DisplayObject
 Inheritedparent : DisplayObjectContainer
[только для чтения] Указывает объект DisplayObjectContainer, содержащий данный экранный объект.
DisplayObject
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
 Inheritedroot : DisplayObject
[только для чтения] В случае с экранным объектом в загруженном SWF-файле свойством root является самый верхний экранный объект в части структуры дерева списка отображения, представленной этим SWF-файлом.
DisplayObject
 Inheritedrotation : Number
Указывает поворот экземпляра DisplayObject относительно его исходной ориентации (в градусах).
DisplayObject
 InheritedrotationX : Number
Обозначает поворот в градусах по оси x экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру.
DisplayObject
 InheritedrotationY : Number
Обозначает поворот в градусах по оси у экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру.
DisplayObject
 InheritedrotationZ : Number
Обозначает поворот в градусах по оси z экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру.
DisplayObject
 Inheritedscale9Grid : Rectangle
Текущая активная сетка масштабирования.
DisplayObject
 InheritedscaleX : Number
Указывает горизонтальное масштабирование объекта от точки регистрации (в процентах).
DisplayObject
 InheritedscaleY : Number
Указывает вертикальное масштабирование объекта от точки регистрации (в процентах).
DisplayObject
 InheritedscaleZ : Number
Указывает масштабирование глубины объекта (в процентах) относительно точки регистрации этого объекта.
DisplayObject
 InheritedscrollRect : Rectangle
Прямоугольная область прокрутки экранного объекта.
DisplayObject
  soundTransform : SoundTransform
Управляет звуком в данном спрайте.
Sprite
 Inheritedstage : Stage
[только для чтения] Класс Stage экранного объекта.
DisplayObject
 InheritedtabChildren : Boolean
Определяет, включен ли переход между потомками объекта с помощью клавиши Tab.
DisplayObjectContainer
 InheritedtabEnabled : Boolean
Определяет, включен ли этот объект в последовательность перехода с помощью клавиши Tab.
InteractiveObject
 InheritedtabIndex : int
Задает последовательность перехода между объектами в SWF-файле.
InteractiveObject
 InheritedtextSnapshot : TextSnapshot
[только для чтения] Возвращает объект TextSnapshot для данного экземпляра DisplayObjectContainer.
DisplayObjectContainer
 Inheritedtransform : Transform
Объект со свойствами, относящимися к матрице, преобразованию цвета и пиксельным границам экранного объекта.
DisplayObject
  useHandCursor : Boolean
Логическое значение, определяющее, должен ли отображаться указатель "рука" при наведении указателя мыши на спрайт, в котором свойство buttonMode имеет значение true.
Sprite
 Inheritedvisible : Boolean
Определяет видимость экранного объекта.
DisplayObject
 Inheritedwidth : Number
Указывает ширину экранного объекта в пикселах.
DisplayObject
 Inheritedx : Number
Указывает координату x экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer.
DisplayObject
 Inheritedy : Number
Указывает координату y экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer.
DisplayObject
 Inheritedz : Number
Указывает положение по оси z экземпляра DisplayObject относительно трехмерного родительского контейнера.
DisplayObject
Общедоступные методы
 МетодОпределено
  
Создает новый экземпляр Sprite.
Sprite
 Inherited
Добавляет дочерний экземпляр DisplayObject к данному экземпляру DisplayObjectContainer.
DisplayObjectContainer
 Inherited
Добавляет дочерний экземпляр DisplayObject к данному экземпляру DisplayObjectContainer.
DisplayObjectContainer
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях.
EventDispatcher
 Inherited
Показывает, могут ли ограничения безопасности привести к пропуску каких-либо экранных объектов в списке, возвращаемом в результате вызова метода DisplayObjectContainer.getObjectsUnderPoint() с заданной точкой.
DisplayObjectContainer
 Inherited
Определяет, является ли заданный экранный объект дочерним объектом экземпляра DisplayObjectContainer или самим экземпляром.
DisplayObjectContainer
 Inherited
Передает событие в поток событий.
EventDispatcher
 Inherited
getBounds(targetCoordinateSpace:DisplayObject):Rectangle
Возвращает прямоугольник, определяющий область экранного объекта, которая относится к системе координат объекта targetCoordinateSpace.
DisplayObject
 Inherited
Возвращает экземпляр дочернего экранного объекта, существующий в заданной позиции индекса.
DisplayObjectContainer
 Inherited
Возвращает экземпляр дочернего экранного объекта с заданным именем.
DisplayObjectContainer
 Inherited
Возвращает позицию индекса для дочернего экземпляра DisplayObject.
DisplayObjectContainer
 Inherited
Возвращает массив объектов, расположенных ниже заданной позиции и являющихся дочерними объектами любого уровня для данного экземпляра DisplayObjectContainer.
DisplayObjectContainer
 Inherited
getRect(targetCoordinateSpace:DisplayObject):Rectangle
Возвращает прямоугольник, определяющий границу экранного объекта по системе координат, заданной параметром targetCoordinateSpace, за исключением линий фигур.
DisplayObject
 Inherited
Преобразует объект Point из координат рабочей области (глобальных) в координаты экранного объекта (локальные).
DisplayObject
 Inherited
Преобразует двумерный объект Point из координат рабочей области (глобальных) в координаты экранного трехмерного объекта (локальные).
DisplayObject
 Inherited
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Оценивает экранный объект, чтобы определить, перекрывает ли он экранный объект obj или пересекается с ним.
DisplayObject
 Inherited
hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
Вычисляет экранный объект, чтобы определить, перекрывает ли он точку, заданную координатами x и y, или пересекает ее.
DisplayObject
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Преобразует трехмерный объект point из координат трехмерного экранного объекта (локальных) в двухмерный объект point с координатами рабочей области (глобальными).
DisplayObject
 Inherited
Преобразует объект point из координат экранного объекта (локальных) в координаты рабочей области (глобальные).
DisplayObject
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Удаляет заданный дочерний объект DisplayObject из списка потомков экземпляра DisplayObjectContainer.
DisplayObjectContainer
 Inherited
Удаляет дочерний DisplayObject из заданной позиции индекса в списке потомков DisplayObjectContainer.
DisplayObjectContainer
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
 Inherited
Изменяет положение существующего потомка в DisplayObjectContainer.
DisplayObjectContainer
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
Позволяет пользователю перетаскивать заданный спрайт (растровый графический объект, легко перемещаемый по экрану).
Sprite
  
Завершает метод startDrag().
Sprite
 Inherited
Меняет местами (в порядке "от начала к концу") два заданных дочерних объекта.
DisplayObjectContainer
 Inherited
swapChildrenAt(index1:int, index2:int):void
Меняет местами (в порядке "от начала к концу") дочерние объекты, расположенные в двух заданных позициях индекса в списке потомков.
DisplayObjectContainer
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
 InheritedОтправляется, когда экранный объект добавляется в список отображения.DisplayObject
 InheritedОтправляется, когда экранный объект добавляется к списку отображения в рабочей области, либо непосредственно, либо путем добавления поддерева, содержащего экранный объект.DisplayObject
 InheritedОтправляется, когда пользователь выбирает команду "Удалить" в контекстном меню текста.InteractiveObject
 InheritedОтправляется, когда пользователь нажимает и отпускает главную кнопку на указывающем устройстве над одним и тем же объектом InteractiveObject.InteractiveObject
 InheritedОтправляется, когда пользователь активирует комбинацию клавиш ускорения, используемую на данной платформе для операции "Копировать", или выбирает команду "Копировать" из контекстного меню.InteractiveObject
 InheritedОтправляется, когда пользователь активирует комбинацию клавиш ускорения, используемую на данной платформе для операции "Вырезать", или выбирает команду "Вырезать" из контекстного меню.InteractiveObject
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным.EventDispatcher
 InheritedОтправляется, когда пользователь дважды нажимает и отпускает главную кнопку на указывающем устройстве над одним и тем же объектом InteractiveObject, а флаг doubleClickEnabled для этого объекта имеет значение true.InteractiveObject
 Inherited[многоадресное событие] Отправляется, когда точка воспроизведения переходит в новый кадр.DisplayObject
 Inherited[многоадресное событие] Отправляется, когда точка воспроизведения покидает текущий кадр.DisplayObject
 InheritedОтправляется, когда экранный объект перемещается в фокус.InteractiveObject
 InheritedОтправляется, когда экранный объект покидает фокус.InteractiveObject
 Inherited[многоадресное событие] Отправляется после завершения работы конструкторов экранных объектов кадра до выполнения сценариев кадра.DisplayObject
 InheritedОтправляется, когда пользователь нажимает клавишу.InteractiveObject
 InheritedОтправляется, когда пользователь пытается изменить фокус с помощью клавиатуры.InteractiveObject
 InheritedОтправляется, когда пользователь отпускает клавишу.InteractiveObject
 InheritedОтправляется, когда пользователь нажимает кнопку на указывающем устройстве над экземпляром InteractiveObject в окне проигрывателя Flash Player.InteractiveObject
 InheritedОтправляется, когда пользователь пытается изменить фокус с помощью указывающего устройства.InteractiveObject
 InheritedОтправляется, когда пользователь перемещает указывающее устройство в момент, когда курсор находится над объектом InteractiveObject.InteractiveObject
 InheritedОтправляется, когда пользователь перемещает указывающее устройство от экземпляра InteractiveObject.InteractiveObject
 InheritedОтправляется, когда пользователь наводит указывающее устройству на экземпляр InteractiveObject в окне проигрывателя Flash Player.InteractiveObject
 InheritedОтправляется, когда пользователь отпускает кнопку на указывающем устройстве над экземпляром InteractiveObject в окне проигрывателя Flash Player.InteractiveObject
 InheritedОтправляется, когда пользователь вращает колесико мыши над экземпляром InteractiveObject в окне проигрывателя Flash Player.InteractiveObject
 InheritedОтправляется, когда пользователь активирует комбинацию клавиш ускорения, используемую на данной платформе для операции "Вставить", или выбирает команду "Вставить" из контекстного меню.InteractiveObject
 InheritedОтправляется перед удалением экранного объекта из списка отображения.DisplayObject
 InheritedОтправляется перед удалением экранного объекта из списка отображения, либо непосредственно, либо путем удаления поддерева, содержащего экранный объект.DisplayObject
 Inherited[многоадресное событие] Отправляется перед обновлением и визуализацией списка отображения.DisplayObject
 InheritedОтправляется, когда пользователь перемещает указывающее устройство от экземпляра InteractiveObject.InteractiveObject
 InheritedОтправляется, когда пользователь наводит указывающее устройство на экземпляр InteractiveObject.InteractiveObject
 InheritedОтправляется, когда пользователь активирует комбинацию клавиш ускорения, используемую на данной платформе для операции "Выделить все", или выбирает команду "Выделить все" из контекстного меню.InteractiveObject
 InheritedОтправляется, когда изменяется значение свойства tabChildren объекта.InteractiveObject
 InheritedОтправляется при изменении флага tabEnabled объекта.InteractiveObject
 InheritedОтправляется, когда изменяется значение свойства tabIndex объекта.InteractiveObject
Сведения о свойстве
buttonModeсвойство
buttonMode:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Задает режим кнопки данного спрайта. При значении true этот спрайт ведет себя как кнопка, то есть, запускает отображение курсора в виде руки, когда над ним проходит мышь, и может получать событие click при нажатии клавиш Enter и "Пробел", когда спрайт в фокусе. Можно подавить отображение курсора "рука", задав свойству useHandCursor значение false, в этом случае будет отображаться указатель.

Хотя для создания кнопок лучше использовать класс SimpleButton, свойство buttonMode можно использовать для придания спрайту некоторых функций кнопок. Чтобы включить спрайт в последовательность перехода с помощью клавиши Tab, задайте свойству tabEnabled (унаследованному от класса InteractiveObject и имеющему по умолчанию значение false) значение true. Кроме того, подумайте должны ли потомки спрайта реагировать на наведение мыши. Большинство кнопок не разрешают интерактивность с мышью для дочерних объектов, так как это запутывает поток событий. Чтобы отключить интерактивность с мышью для всех дочерних объектов, необходимо задать свойству mouseChildren (унаследованному от класса) значение false.

Если свойство buttonMode используется с классом MovieClip (подклассом класса Sprite), кнопка может получить дополнительные функции. Если включить кадры с подписями _up, _over и _down, проигрыватель Flash Player передает автоматические изменения состояния (функция, подобная возможностям фрагментов роликов, используемых в качестве кнопок, в предыдущих версиях ActionScript). Эти автоматические изменения состояния недоступны для спрайтов, так как у них нет временной шкалы и, следовательно, кадров для добавления подписей.



Реализация
    public function get buttonMode():Boolean
    public function set buttonMode(value:Boolean):void

См. также


Пример
В следующем примере создается два спрайта, для одного из которых свойству buttonMode задается значение true, а для другого — false. Когда приложение компилируется и запускается, оба спрайта реагируют на события мыши, но только тот, у которого buttonMode имеет значение true использует курсор "рука" и включается в последовательность перехода с помощью клавиши Tab.
import flash.display.Sprite;
import flash.events.MouseEvent;

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill(0xFFCC00);
circle1.graphics.drawCircle(40, 40, 40);
circle1.buttonMode = true;
circle1.addEventListener(MouseEvent.CLICK, clicked);

var circle2:Sprite = new Sprite();
circle2.graphics.beginFill(0xFFCC00);
circle2.graphics.drawCircle(120, 40, 40);
circle2.buttonMode = false;
circle2.addEventListener(MouseEvent.CLICK, clicked);

function clicked(event:MouseEvent):void {
    trace ("Click!");
}

addChild(circle1);
addChild(circle2);
dropTargetсвойство 
dropTarget:DisplayObject  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Определяет экранный объект, над которым перетаскивается спрайт, либо на котором спрайт был отпущен.



Реализация
    public function get dropTarget():DisplayObject

См. также


Пример
В следующем примере создается спрайт circle и два спрайта target. Метод startDrag() вызывается для спрайта circle, когда пользователь помещает курсор на спрайт и нажимает кнопку мыши, а метод stopDrag() вызывается, когда пользователь отпускает кнопку мыши. Это позволяет пользователю перетащить спрайт. Когда кнопка мыши отпускается, вызывается метод mouseRelease(), отслеживающий имя объекта dropTarget — того, к которому пользователь перетащил спрайт circle:
import flash.display.Sprite;
import flash.events.MouseEvent;

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(0, 0, 40);

var target1:Sprite = new Sprite();
target1.graphics.beginFill(0xCCFF00);
target1.graphics.drawRect(0, 0, 100, 100);
target1.name = "target1";

var target2:Sprite = new Sprite();
target2.graphics.beginFill(0xCCFF00);
target2.graphics.drawRect(0, 200, 100, 100);
target2.name = "target2";

addChild(target1);
addChild(target2);
addChild(circle);

circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) 

function mouseDown(event:MouseEvent):void {
    circle.startDrag();
}
circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);

function mouseReleased(event:MouseEvent):void {
    circle.stopDrag();
    trace(circle.dropTarget.name);
}
graphicsсвойство 
graphics:Graphics  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Задает объект Graphics, принадлежащий данному спрайту, в котором могут выполняться команды векторного рисования.



Реализация
    public function get graphics():Graphics

Пример
В следующем примере создается спрайт circle и используется его свойство graphics для отрисовки круга с желтой заливкой (0xFFCC00).
import flash.display.Sprite;

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(40, 40, 40);
addChild(circle);
hitAreaсвойство 
hitArea:Sprite  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Определяет другой спрайт в качестве области щелчка для спрайта. Если свойство hitArea не существует или ему задано значение null или undefined, то в качестве области щелчка используется сам спрайт. Значение свойства hitArea может быть ссылкой на объект Sprite.

Свойство hitArea можно изменить в любой момент; модифицированный спрайт немедленно начинает использовать новое поведения области щелчка. Спрайт, настроенный в качестве области щелчка не обязательно должен быть видимым; его графическая форма, оставаясь невидимой, все равно обнаруживается в качестве области щелчка.

Примечание. Необходимо задать значение false свойству mouseEnabled спрайта, настроенного в качестве области щелчка. В противном случае кнопка спрайта может не работать, так как спрайт, настроенный в качестве области щелчка, получает события мыши вместо кнопки спрайта.



Реализация
    public function get hitArea():Sprite
    public function set hitArea(value:Sprite):void

Пример
В следующем примере создается спрайт circle и спрайт square. Спрайт square является областью щелчка hitArea для спрайтаcircle. Поэтому когда пользователь нажимает на спрайт square, спрайт circle отправляет событие click.
import flash.display.Sprite;
import flash.events.MouseEvent;

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(0, 0, 40);

var square:Sprite = new Sprite();
square.graphics.beginFill(0xCCFF00);
square.graphics.drawRect(200, 0, 100, 100);

circle.hitArea = square;
square.mouseEnabled = false;

circle.addEventListener(MouseEvent.CLICK, clicked);

function clicked(event:MouseEvent):void{
    trace(event.target == circle); // true
    trace(event.target == square); // false
}

addChild(circle);
addChild(square);
soundTransformсвойство 
soundTransform:SoundTransform  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Управляет звуком в данном спрайте.



Реализация
    public function get soundTransform():SoundTransform
    public function set soundTransform(value:SoundTransform):void

См. также


Пример
В следующем примере создается спрайт с именем container, и в его список потомков добавляется объект Loader. Объект Loader загружает SWF-файл. Когда пользователь щелкает ссылку в текстовом поле tf со значением true, метод mute() задает свойство volume свойства soundTransform спрайта container.
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.IOErrorEvent;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.media.SoundTransform;

var container:Sprite = new Sprite();
addChild(container);

var ldr:Loader = new Loader;
var urlReq:URLRequest = new URLRequest("SoundPlayer.swf");
ldr.load(urlReq);

container.addChild(ldr);
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound);
            
var tf:TextField = new TextField();
tf.htmlText = "<a href = 'event:Mute'>Mute / Unmute</a>";
addChild(tf);

var mySoundTransform:SoundTransform = new SoundTransform();
mySoundTransform.volume = 1;

tf.addEventListener(MouseEvent.CLICK, mute);

function mute(event:MouseEvent):void {    
    if (mySoundTransform.volume == 0) {
        mySoundTransform.volume = 1;
    } else {
        mySoundTransform.volume = 0;        
    }
    container.soundTransform = mySoundTransform;
}

function urlNotFound(event:IOErrorEvent):void {
    trace("The URL was not found."); 
}
useHandCursorсвойство 
useHandCursor:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Логическое значение, определяющее, должен ли отображаться указатель "рука" при наведении указателя мыши на спрайт, в котором свойство buttonMode имеет значение true. Свойство useHandCursor по умолчанию имеет значение true. При useHandCursor в значении true указывающая рука, используемая для кнопок, появляется при наведении мыши на спрайт-кнопку. Если же useHandCursor имеет значение false, используется указатель "стрелка".

Свойство useHandCursor можно изменить в любое время; модифицированный спрайт немедленно принимает новый вид курсора.



Реализация
    public function get useHandCursor():Boolean
    public function set useHandCursor(value:Boolean):void

См. также


Пример
В следующем примере создается два спрайта, и свойству buttonMode обоих задается значение true, однако для одного из них свойство useHandCursor имеет значение true, а для другого — false. При компиляции и запуске приложения оба спрайта ведут себя, как кнопки (включенные в последовательность перехода с помощью клавиши Tab), но только курсор "рука" использует только спрайт со свойством useHandCursor в значении true.
import flash.display.Sprite;
import flash.events.MouseEvent;

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill(0xFFCC00);
circle1.graphics.drawCircle(40, 40, 40);
circle1.buttonMode = true;
circle1.useHandCursor = true;
circle1.addEventListener(MouseEvent.CLICK, clicked);

var circle2:Sprite = new Sprite();
circle2.graphics.beginFill(0xFFCC00);
circle2.graphics.drawCircle(120, 40, 40);
circle2.buttonMode = true;
circle2.useHandCursor = false;
circle2.addEventListener(MouseEvent.CLICK, clicked);

function clicked(event:MouseEvent):void {
    trace ("Click!");
}

addChild(circle1);
addChild(circle2);
Сведения о конструкторе
Sprite()Конструктор
public function Sprite()

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Создает новый экземпляр Sprite. Создав экземпляр Sprite вызовите метод DisplayObjectContainer.addChild() или DisplayObjectContainer.addChildAt(), чтобы добавить Sprite в родительский объект DisplayObjectContainer.

Сведения о методе
startDrag()метод
public function startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Позволяет пользователю перетаскивать заданный спрайт (растровый графический объект, легко перемещаемый по экрану). Спрайт остается перетаскиваемым до явной остановки через вызов метода Sprite.stopDrag() или до того, как другой спрайт станет перетаскиваемым. Одновременно можно перетаскивать только один спрайт.

Трехмерные экранные объекты управляются мышью, а метод Sprite.startDrag() позволяет переместить объект в трехмерной плоскости, определенной экранным объектом. Или, если экранный объект является двумерным объектом и дочерним элементом трехмерного объекта, двумерный объект перемещается в трехмерной плоскости, определенной трехмерным родительским объектом.

Параметры

lockCenter:Boolean (default = false) — Определяет, блокируется ли перетаскиваемый спрайт по центру положения мыши (true) или по точке, на которой впервые щелкнул мышью пользователь (false).
 
bounds:Rectangle (default = null) — Значение относительно координат родительского объекта Sprite, задающее для него закрепленный прямоугольник.

См. также


Пример

В следующем примере создается спрайт circle и два спрайта target. Метод startDrag() вызывается для спрайта circle, когда пользователь помещает курсор на спрайт и нажимает кнопку мыши, а метод stopDrag() вызывается, когда пользователь отпускает кнопку мыши. Это позволяет пользователю перетащить спрайт. Когда кнопка мыши отпускается, вызывается метод mouseRelease(), отслеживающий имя объекта dropTarget — того, к которому пользователь перетащил спрайт circle:
import flash.display.Sprite;
import flash.events.MouseEvent;

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(0, 0, 40);

var target1:Sprite = new Sprite();
target1.graphics.beginFill(0xCCFF00);
target1.graphics.drawRect(0, 0, 100, 100);
target1.name = "target1";

var target2:Sprite = new Sprite();
target2.graphics.beginFill(0xCCFF00);
target2.graphics.drawRect(0, 200, 100, 100);
target2.name = "target2";

addChild(target1);
addChild(target2);
addChild(circle);

circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) 

function mouseDown(event:MouseEvent):void {
    circle.startDrag();
}
circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);

function mouseReleased(event:MouseEvent):void {
    circle.stopDrag();
    trace(circle.dropTarget.name);
}
stopDrag()метод 
public function stopDrag():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Завершает метод startDrag(). Спрайт, сделанный перетаскиваемым с помощью метода startDrag(), остается таковым до добавления метода stopDrag() или до того, как другой спрайт станет перетаскиваемым. Одновременно можно перетаскивать только один спрайт.

См. также


Пример

В следующем примере создается спрайт circle и два спрайта target. Метод startDrag() вызывается для спрайта circle, когда пользователь помещает курсор на спрайт и нажимает кнопку мыши, а метод stopDrag() вызывается, когда пользователь отпускает кнопку мыши. Это позволяет пользователю перетащить спрайт. Когда кнопка мыши отпускается, вызывается метод mouseRelease(), отслеживающий имя объекта dropTarget — того, к которому пользователь перетащил спрайт circle:
import flash.display.Sprite;
import flash.events.MouseEvent;

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(0, 0, 40);

var target1:Sprite = new Sprite();
target1.graphics.beginFill(0xCCFF00);
target1.graphics.drawRect(0, 0, 100, 100);
target1.name = "target1";

var target2:Sprite = new Sprite();
target2.graphics.beginFill(0xCCFF00);
target2.graphics.drawRect(0, 200, 100, 100);
target2.name = "target2";

addChild(target1);
addChild(target2);
addChild(circle);

circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) 

function mouseDown(event:MouseEvent):void {
    circle.startDrag();
}
circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);

function mouseReleased(event:MouseEvent):void {
    circle.stopDrag();
    trace(circle.dropTarget.name);
}
Примеры Как пользоваться примерами
SpriteExample.as

В следующем примере класс SpriteExample используется для отображения оранжевого квадрата в рабочей области, и при каждом щелчке или перетаскивании квадрата пользователем отправляется событие. Это можно сделать, выполнив следующие действия.
  1. Объявите свойство size (100 x 100 пикселов) и цвет фона (оранжевый) для дальнейшего использования при рисовании квадрата.
  2. После этого конструктор создает новый объект Sprite child и использует его для добавления двух прослушивателей событий и связанных с ними методов: mouseDownHandler() и mouseUpHandler().
  3. Затем объект Sprite child передается методу draw(), который рисует оранжевый квадрат.
  4. После этого дочерний объект помещается в список отображения через вызов метода addChild().
  5. Прослушиватели событий работают следующим образом.
    • mouseDownHandler(): когда пользователь щелкает объект Sprite, этот метод добавляет прослушиватель события mouseMove, метод mouseMoveHandler(), обрабатывающий перемещение мыши. Затем вызывается метод startDrag(), позволяющий перетаскивать объект Sprite.
    • mouseUpHandler(): когда кнопка мыши отпускается, прослушиватель события mouseMove удаляется и вызывается метод stopDrag(), фиксирующий оранжевый квадрат на месте.
    • mouseMoveHandler: пока удерживается левая кнопка мыши, этот метод предписывает проигрывателю непрерывно перерисовывать оранжевый квадрат.

Примечание. Каждый метод прослушивателя событий объявляет локальную переменную sprite, которая назначается свойству target события.


package {
    import flash.display.Sprite;
    import flash.events.*;

    public class SpriteExample extends Sprite {
        private var size:uint    = 100;
        private var bgColor:uint = 0xFFCC00;

        public function SpriteExample() {
            var child:Sprite = new Sprite();
            child.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
            child.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
            draw(child);
            addChild(child);
        }

        private function mouseDownHandler(event:MouseEvent):void {
            trace("mouseDownHandler");
            var sprite:Sprite = Sprite(event.target);
            sprite.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
            sprite.startDrag();
        }

        private function mouseUpHandler(event:MouseEvent):void {
            trace("mouseUpHandler");
            var sprite:Sprite = Sprite(event.target);
            sprite.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
            sprite.stopDrag();
        }

        private function mouseMoveHandler(event:MouseEvent):void {
            trace("mouseMoveHandler");
            event.updateAfterEvent();
        }

        private function draw(sprite:Sprite):void {
            sprite.graphics.beginFill(bgColor);
            sprite.graphics.drawRect(0, 0, size, size);
            sprite.graphics.endFill();
        }
    }
}