Пакет | flash.display |
Класс | public class Sprite |
Наследование | Sprite ![]() ![]() ![]() ![]() ![]() |
Подклассы | FLVPlayback, FLVPlaybackCaptioning, HTMLLoader, MovieClip, UIComponent |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Объект Sprite напоминает фрагмент ролика, но не имеет временной шкалы. Sprite — это подходящий базовый класс для объектов, не требующих временной шкалы. Например, будет логично использовать класс Sprite в качестве базы для компонентов пользовательского интерфейса, для которых обычно не используется временная шкала.
Класс Sprite впервые введен в ActionScript 3.0. Это альтернатива функциям класса MovieClip, сохраняющая все возможности предыдущих версий ActionScript с целью обеспечения совместимости.
Свойство | Определено | ||
---|---|---|---|
![]() | accessibilityProperties : AccessibilityProperties
Текущие параметры специальных возможностей для данного экранного объекта. | DisplayObject | |
![]() | alpha : Number
Указывает значение альфа-прозрачности заданного объекта. | DisplayObject | |
![]() | blendMode : String
Значение класса BlendMode, задающее режим наложения. | DisplayObject | |
![]() | blendShader : Shader [только для записи]
Задает затенение, используемое при наложении переднего плана на фон. | DisplayObject | |
buttonMode : Boolean
Задает режим кнопки данного спрайта. | Sprite | ||
![]() | cacheAsBitmap : Boolean
При значении true проигрыватель Flash Player кэширует внутреннее растровое представление экранного объекта. | DisplayObject | |
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
![]() | contextMenu : ContextMenu
Определяет контекстное меню, связанное с данным объектом. | InteractiveObject | |
![]() | doubleClickEnabled : Boolean
Определяет, получает ли объект события doubleClick. | InteractiveObject | |
dropTarget : DisplayObject [только для чтения]
Определяет экранный объект, над которым перетаскивается спрайт, либо на котором спрайт был отпущен. | Sprite | ||
![]() | filters : Array
Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом. | DisplayObject | |
![]() | focusRect : Object
Задает отображение прямоугольной рамки индикатора фокуса для данного объекта. | InteractiveObject | |
graphics : Graphics [только для чтения]
Задает объект Graphics, принадлежащий данному спрайту, в котором могут выполняться команды векторного рисования. | Sprite | ||
![]() | height : Number
Указывает высоту экранного объекта в пикселах. | DisplayObject | |
hitArea : Sprite
Определяет другой спрайт в качестве области щелчка для спрайта. | Sprite | ||
![]() | loaderInfo : LoaderInfo [только для чтения]
Возвращает объект LoaderInfo, содержащий сведения о загрузке файла, к которому принадлежит этот экранный объект. | DisplayObject | |
![]() | mask : DisplayObject
Вызывающий экранный объект маскируется заданным объектом mask. | DisplayObject | |
![]() | mouseChildren : Boolean
Определяет, включен ли переход между потомками объекта с помощью мыши. | DisplayObjectContainer | |
![]() | mouseEnabled : Boolean
Определяет, получает ли этот объект сообщения мыши. | InteractiveObject | |
![]() | mouseX : Number [только для чтения]
Указывает координату x положения курсора мыши (в пикселах). | DisplayObject | |
![]() | mouseY : Number [только для чтения]
Указывает координату y положения курсора мыши (в пикселах). | DisplayObject | |
![]() | name : String
Указывает имя экземпляра DisplayObject. | DisplayObject | |
![]() | numChildren : int [только для чтения]
Возвращает число потомков данного объекта. | DisplayObjectContainer | |
![]() | opaqueBackground : Object
Определяет, является ли экранный объект непрозрачным с определенным цветом фона. | DisplayObject | |
![]() | parent : DisplayObjectContainer [только для чтения]
Указывает объект DisplayObjectContainer, содержащий данный экранный объект. | DisplayObject | |
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object | |
![]() | 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 | |
soundTransform : SoundTransform
Управляет звуком в данном спрайте. | Sprite | ||
![]() | stage : Stage [только для чтения]
Класс Stage экранного объекта. | DisplayObject | |
![]() | tabChildren : Boolean
Определяет, включен ли переход между потомками объекта с помощью клавиши Tab. | DisplayObjectContainer | |
![]() | tabEnabled : Boolean
Определяет, включен ли этот объект в последовательность перехода с помощью клавиши Tab. | InteractiveObject | |
![]() | tabIndex : int
Задает последовательность перехода между объектами в SWF-файле. | InteractiveObject | |
![]() | textSnapshot : TextSnapshot [только для чтения]
Возвращает объект TextSnapshot для данного экземпляра DisplayObjectContainer. | DisplayObjectContainer | |
![]() | transform : Transform
Объект со свойствами, относящимися к матрице, преобразованию цвета и пиксельным границам экранного объекта. | DisplayObject | |
useHandCursor : Boolean
Логическое значение, определяющее, должен ли отображаться указатель "рука" при наведении указателя мыши на спрайт, в котором свойство buttonMode имеет значение true. | Sprite | ||
![]() | visible : Boolean
Определяет видимость экранного объекта. | DisplayObject | |
![]() | width : Number
Указывает ширину экранного объекта в пикселах. | DisplayObject | |
![]() | x : Number
Указывает координату x экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. | DisplayObject | |
![]() | y : Number
Указывает координату y экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. | DisplayObject | |
![]() | z : Number
Указывает положение по оси z экземпляра DisplayObject относительно трехмерного родительского контейнера. | DisplayObject |
Метод | Определено | ||
---|---|---|---|
Sprite()
Создает новый экземпляр Sprite. | Sprite | ||
![]() |
Добавляет дочерний экземпляр DisplayObject к данному экземпляру DisplayObjectContainer. | DisplayObjectContainer | |
![]() |
Добавляет дочерний экземпляр DisplayObject к данному экземпляру DisplayObjectContainer. | DisplayObjectContainer | |
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях. | EventDispatcher | |
![]() |
Показывает, могут ли ограничения безопасности привести к пропуску каких-либо экранных объектов в списке, возвращаемом в результате вызова метода DisplayObjectContainer.getObjectsUnderPoint() с заданной точкой. | DisplayObjectContainer | |
![]() |
Определяет, является ли заданный экранный объект дочерним объектом экземпляра DisplayObjectContainer или самим экземпляром. | DisplayObjectContainer | |
![]() |
Передает событие в поток событий. | EventDispatcher | |
![]() | DisplayObject | ||
![]() |
Возвращает прямоугольник, определяющий область экранного объекта, которая относится к системе координат объекта targetCoordinateSpace. | DisplayObject | |
![]() |
Возвращает экземпляр дочернего экранного объекта, существующий в заданной позиции индекса. | DisplayObjectContainer | |
![]() |
Возвращает экземпляр дочернего экранного объекта с заданным именем. | DisplayObjectContainer | |
![]() |
Возвращает позицию индекса для дочернего экземпляра DisplayObject. | DisplayObjectContainer | |
![]() | DisplayObject | ||
![]() |
Возвращает массив объектов, расположенных ниже заданной позиции и являющихся дочерними объектами любого уровня для данного экземпляра DisplayObjectContainer. | DisplayObjectContainer | |
![]() |
Возвращает прямоугольник, определяющий границу экранного объекта по системе координат, заданной параметром targetCoordinateSpace, за исключением линий фигур. | DisplayObject | |
![]() |
Преобразует объект Point из координат рабочей области (глобальных) в координаты экранного объекта (локальные). | DisplayObject | |
![]() |
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа. | EventDispatcher | |
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Оценивает экранный объект, чтобы определить, перекрывает ли он экранный объект obj или пересекается с ним. | DisplayObject | |
![]() |
Вычисляет экранный объект, чтобы определить, перекрывает ли он точку, заданную координатами x и y, или пересекает ее. | DisplayObject | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Преобразует объект point из координат экранного объекта (локальных) в координаты рабочей области (глобальные). | DisplayObject | |
![]() | DisplayObject | ||
![]() | DisplayObject | ||
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Удаляет заданный дочерний объект DisplayObject из списка потомков экземпляра DisplayObjectContainer. | DisplayObjectContainer | |
![]() |
Удаляет дочерний DisplayObject из заданной позиции индекса в списке потомков DisplayObjectContainer. | DisplayObjectContainer | |
![]() |
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | |
![]() |
Изменяет положение существующего потомка в DisplayObjectContainer. | DisplayObjectContainer | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
Позволяет пользователю перетаскивать заданный спрайт (растровый графический объект, легко перемещаемый по экрану). | Sprite | ||
Завершает метод startDrag(). | Sprite | ||
![]() |
Меняет местами (в порядке "от начала к концу") два заданных дочерних объекта. | DisplayObjectContainer | |
![]() |
Меняет местами (в порядке "от начала к концу") дочерние объекты, расположенные в двух заданных позициях индекса в списке потомков. | DisplayObjectContainer | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа. | EventDispatcher |
buttonMode | свойство |
buttonMode:Boolean
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает новый экземпляр Sprite. Создав экземпляр Sprite вызовите метод DisplayObjectContainer.addChild()
или DisplayObjectContainer.addChildAt()
, чтобы добавить Sprite в родительский объект DisplayObjectContainer.
startDrag | () | метод |
public function startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Позволяет пользователю перетаскивать заданный спрайт (растровый графический объект, легко перемещаемый по экрану). Спрайт остается перетаскиваемым до явной остановки через вызов метода Sprite.stopDrag()
или до того, как другой спрайт станет перетаскиваемым. Одновременно можно перетаскивать только один спрайт.
Параметры
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 |
Версии среды выполнения: | AIR 1.0, Flash Player 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); }
size
(100 x 100 пикселов) и цвет фона (оранжевый) для дальнейшего использования при рисовании квадрата.child
и использует его для добавления двух прослушивателей событий и связанных с ними методов: mouseDownHandler()
и mouseUpHandler()
.child
передается методу draw()
, который рисует оранжевый квадрат.addChild()
. 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(); } } }