Пакет | flash.display |
Класс | public class DisplayObjectContainer |
Наследование | DisplayObjectContainer ![]() ![]() ![]() ![]() |
Подклассы | Loader, Sprite, Stage, TextLine |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
DisplayObject — это абстрактный базовый класс, поэтому DisplayObject нельзя вызывать непосредственно. При вызове new DisplayObject()
выдается исключение ArgumentError
.
new DisplayObjectContainer()
выдается исключение ArgumentError
.
Дополнительные сведения см. в главе "Программирование экрана" книги Программирование на ActionScript 3.0.
См. также
Свойство | Определено | ||
---|---|---|---|
![]() | accessibilityProperties : AccessibilityProperties
Текущие параметры специальных возможностей для данного экранного объекта. | DisplayObject | |
![]() | alpha : Number
Указывает значение альфа-прозрачности заданного объекта. | DisplayObject | |
![]() | blendMode : String
Значение класса BlendMode, задающее режим наложения. | DisplayObject | |
![]() | blendShader : Shader [только для записи]
Задает затенение, используемое при наложении переднего плана на фон. | DisplayObject | |
![]() | cacheAsBitmap : Boolean
При значении true проигрыватель Flash Player кэширует внутреннее растровое представление экранного объекта. | DisplayObject | |
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
![]() | contextMenu : ContextMenu
Определяет контекстное меню, связанное с данным объектом. | InteractiveObject | |
![]() | doubleClickEnabled : Boolean
Определяет, получает ли объект события doubleClick. | InteractiveObject | |
![]() | filters : Array
Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом. | DisplayObject | |
![]() | focusRect : Object
Задает отображение прямоугольной рамки индикатора фокуса для данного объекта. | InteractiveObject | |
![]() | height : Number
Указывает высоту экранного объекта в пикселах. | DisplayObject | |
![]() | 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 | |
![]() | stage : Stage [только для чтения]
Класс Stage экранного объекта. | DisplayObject | |
tabChildren : Boolean
Определяет, включен ли переход между потомками объекта с помощью клавиши Tab. | DisplayObjectContainer | ||
![]() | tabEnabled : Boolean
Определяет, включен ли этот объект в последовательность перехода с помощью клавиши Tab. | InteractiveObject | |
![]() | tabIndex : int
Задает последовательность перехода между объектами в SWF-файле. | InteractiveObject | |
textSnapshot : TextSnapshot [только для чтения]
Возвращает объект TextSnapshot для данного экземпляра DisplayObjectContainer. | DisplayObjectContainer | ||
![]() | transform : 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 |
Метод | Определено | ||
---|---|---|---|
При вызове new DisplayObjectContainer() конструктор выдает исключение ArgumentError. | DisplayObjectContainer | ||
Добавляет дочерний экземпляр 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 | |
Меняет местами (в порядке "от начала к концу") два заданных дочерних объекта. | DisplayObjectContainer | ||
Меняет местами (в порядке "от начала к концу") дочерние объекты, расположенные в двух заданных позициях индекса в списке потомков. | DisplayObjectContainer | ||
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа. | EventDispatcher |
mouseChildren | свойство |
mouseChildren:Boolean
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, включен ли переход между потомками объекта с помощью мыши. Если объект реагирует на мышь, пользователь может взаимодействовать с ним с помощью мыши. Значение по умолчанию — true
.
Это свойство удобно использовать, когда кнопка создается с помощью экземпляра класса Sprite (а не класса SimpleButton). Когда для создания кнопки используется экземпляр Sprite, при желании можно украсить кнопку с помощью метода addChild()
, добавив дополнительные экземпляры Sprite. Этот процесс может вызывать непредвиденное поведение событий мыши, так как целевым объектом события мыши вместо родительского экземпляра могут стать экземпляры Sprite, добавленные в качестве потомков. Чтобы родительский экземпляр гарантированно быть целевым объектом событий мыши, можно задать его свойству mouseChildren
значение false
.
При настройке данного свойства события не отправляются. Чтобы создать интерактивные функции, необходимо использовать метод addEventListener()
.
public function get mouseChildren():Boolean
public function set mouseChildren(value:Boolean):void
См. также
container
и показывается, что когда свойству mouseChildren
задается значение false
, целью события mouseClick
является объект container
, а не его потомки.import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); container.name = "container"; addChild(container); var circle:Sprite = new Sprite(); circle.name = "circle"; circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(40, 40, 40); container.addChild(circle); container.mouseChildren = false; container.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace(event.target.name); // container }
numChildren | свойство |
numChildren:int
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает число потомков данного объекта.
public function get numChildren():int
container1
и container2
. Спрайт — это тип контейнера экранных объектов. В примере вызывается метод addChild()
для создания иерархии отображения: container1
является потомком container2
, а два других экранных объекта, circle1
и circle2
, являются потомками container1
. При вызове метода trace()
показывается число потомков каждого объекта. Обратите внимание, что потомки потомков не включены в счетчик numChildren
.import flash.display.Sprite; var container1:Sprite = new Sprite(); var container2:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(80, 40, 40); container2.addChild(container1); container1.addChild(circle1); container1.addChild(circle2); trace(container1.numChildren); // 2 trace(container2.numChildren); // 1 trace(circle1.numChildren); // 0 trace(circle2.numChildren); // 0
tabChildren | свойство |
tabChildren:Boolean
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, включен ли переход между потомками объекта с помощью клавиши Tab. Включает или отключает переход между потомками объекта с помощью клавиши Tab. Значение по умолчанию — true
.
public function get tabChildren():Boolean
public function set tabChildren(value:Boolean):void
IllegalOperationError — При вызове данного свойства объекта Stage выдается исключение. Объект Stage не реализует это свойство.
|
container1
и в его список отображения добавляется два экранных объекта: circle1
и circle2
. В этом примере для tabChildren потомков задается значение false
, чтобы последовательностью перехода с помощью клавиши Tab можно было управлять с помощью tabIndex
.import flash.display.Sprite; var container:Sprite = new Sprite(); container.tabChildren = false; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.tabIndex = 1; var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(120, 40, 40); circle2.tabIndex = 0; container.addChild(circle1); container.addChild(circle2);
textSnapshot | свойство |
textSnapshot:TextSnapshot
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает объект TextSnapshot для данного экземпляра DisplayObjectContainer.
public function get textSnapshot():TextSnapshot
См. также
trace(this.textSnapshot.getText(0, this.textSnapshot.charCount));
DisplayObjectContainer | () | Конструктор |
public function DisplayObjectContainer()
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
При вызове нового DisplayObjectContainer()
конструктор выдает исключение ArgumentError
. Однако можно вызывать конструкторы для следующих подклассов DisplayObjectContainer:
new Loader()
new Sprite()
new MovieClip()
addChild | () | метод |
public function addChild(child:DisplayObject):DisplayObject
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Добавляет дочерний экземпляр DisplayObject к данному экземпляру DisplayObjectContainer. Потомок добавляется перед (сверху) всех остальных потомков в данном экземпляре DisplayObjectContainer. (Чтобы добавить потомка в конкретную позицию в индексе, используйте метод addChildAt()
.)
Если добавляется объект, предком которого уже является другой контейнер экранных объектов, то он удаляется из списка потомков старого контейнера.
Параметры
child:DisplayObject — Экземпляр DisplayObject для добавления в качестве потомка данного экземпляра DisplayObjectContainer.
|
DisplayObject — Экземпляр DisplayObject, передаваемый в параметре child .
|
added: — Отправляется, когда экранный объект добавляется в список отображения. |
ArgumentError — Исключение выдается, если потомок тот же, что и предок. Также выдается исключение, если вызывающий объект является потомком (или потомком потомка и т.д.) добавляемого потомка.
|
См. также
container1
и container2
. Спрайт — это тип контейнера экранных объектов. В примере вызывается метод addChild()
для создания иерархии отображения: container1
является потомком container2
, а два других экранных объекта, circle1
и circle2
, являются потомками container1
. При вызове метода trace()
показывается число потомков каждого объекта. Обратите внимание, что потомки потомков не включены в счетчик numChildren
.import flash.display.Sprite; var container1:Sprite = new Sprite(); var container2:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(80, 40, 40); container2.addChild(container1); container1.addChild(circle1); container1.addChild(circle2); trace(container1.numChildren); // 2 trace(container2.numChildren); // 1 trace(circle1.numChildren); // 0 trace(circle2.numChildren); // 0
addChildAt | () | метод |
public function addChildAt(child:DisplayObject, index:int):DisplayObject
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Добавляет дочерний экземпляр DisplayObject к данному экземпляру DisplayObjectContainer. Потомок добавляется в указанной позиции индекса. Индекс 0 обозначает конец списка отображения для данного объекта DisplayObjectContainer.
Так, в следующем примере показано три разных объекта с именами a, b и c в позициях индекса 0, 2 и 1 соответственно.
Если добавляется объект, предком которого уже является другой контейнер экранных объектов, то он удаляется из списка потомков старого контейнера.
Параметры
child:DisplayObject — Экземпляр DisplayObject для добавления в качестве потомка данного экземпляра DisplayObjectContainer.
| |
index:int — Позиция индекса, в которую добавляется дочерний объект. Если указать занятую на данный момент позицию индекса, дочерний объект, существующий на этой и на этой позиции, и все выше расположенные позиции перемещаются на одну позицию вверх в списке потомков.
|
DisplayObject — Экземпляр DisplayObject, передаваемый в параметре child .
|
added: — Отправляется, когда экранный объект добавляется в список отображения. |
RangeError — Исключение выдается, если позиция в индексе не существует в списке потомков.
| |
ArgumentError — Исключение выдается, если потомок тот же, что и предок. Также выдается исключение, если вызывающий объект является потомком (или потомком потомка и т.д.) добавляемого потомка.
|
См. также
container
и в его список отображения добавляется экранный объект circle1
. Затем посредством вызова container.addChildAt(circle2, 0)
добавляется объект circle2
в позицию индекса 0 (задний план) и перемещает объект circle1
в позицию индекса 1.import flash.display.Sprite; var container:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); var circle2:Sprite = new Sprite(); container.addChild(circle1); container.addChildAt(circle2, 0); trace(container.getChildAt(0) == circle2); // true trace(container.getChildAt(1) == circle1); // true
areInaccessibleObjectsUnderPoint | () | метод |
public function areInaccessibleObjectsUnderPoint(point:Point):Boolean
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Показывает, могут ли ограничения безопасности привести к пропуску каких-либо экранных объектов в списке, возвращаемом в результате вызова метода DisplayObjectContainer.getObjectsUnderPoint()
с заданной точкой point
. По умолчанию содержимое из одного домена не может обращаться к объектам из другого домена, если это не разрешено с использованием метода Security.allowDomain()
.
Дополнительные сведения см. в следующих источниках.
Параметр point
находится в координатной плоскости рабочей области, которая может отличаться от координатной плоскости контейнера экранных объектов (если это не рабочая область). Можно использовать методы globalToLocal()
и localToGlobal()
для преобразования точек между этими координатными плоскостями.
Параметры
point:Point — Точка, под которой следует искать.
|
Boolean — Значение true , если точка содержит дочерние экранные объекты с ограничениями по безопасности.
|
См. также
container
. В следующем блоке кода используется объект Loader для загрузки файла JPEG с именем "test.jpg" с удаленного файлового сервера. Обратите внимание, что свойство checkPolicyFile
объекта LoaderContext, использованного в качестве параметра в методе load()
, имеет значение false
. По завершении загрузки файла код вызывает метод loaded()
, который в свою очередь вызывает метод container.areInaccessibleObjectsUnderPoint()
, возвращающий значение true
, так как загруженное содержание находится на недоступном домене.import flash.display.Sprite; import flash.display.Loader; import flash.system.LoaderContext; import flash.net.URLRequest; import flash.events.Event; import flash.geom.Point; var container:Sprite = new Sprite(); var urlReq:URLRequest = new URLRequest("http://localhost/RemoteFile.swf"); var ldr:Loader = new Loader(); var context:LoaderContext = new LoaderContext(); context.checkPolicyFile = false; ldr.load(urlReq, context); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound); function loaded(event:Event):void { var pt:Point = new Point(1, 1); trace(container.areInaccessibleObjectsUnderPoint(pt)); // true } function urlNotFound(event:Event):void { trace("The URL was not found."); }
contains | () | метод |
public function contains(child:DisplayObject):Boolean
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, является ли заданный экранный объект дочерним объектом экземпляра DisplayObjectContainer или самим экземпляром. Область поиска охватывает весь список отображения, включая данный экземпляр DisplayObjectContainer. Внучатые потомки, их потомки и т.д. возвращают значение true
.
Параметры
child:DisplayObject — Тестируемый дочерний объект.
|
Boolean — Значение true , если объект child является потомком объекта DisplayObjectContainer или самого контейнера, в противном случае значение false .
|
contains()
.import flash.display.Sprite; var sprite1:Sprite = new Sprite(); var sprite2:Sprite = new Sprite(); var sprite3:Sprite = new Sprite(); var sprite4:Sprite = new Sprite(); sprite1.addChild(sprite2); sprite2.addChild(sprite3); trace(sprite1.contains(sprite1)); // true trace(sprite1.contains(sprite2)); // true trace(sprite1.contains(sprite3)); // true trace(sprite1.contains(sprite4)); // false
getChildAt | () | метод |
public function getChildAt(index:int):DisplayObject
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает экземпляр дочернего экранного объекта, существующий в заданной позиции индекса.
Параметры
index:int — Позиция индекса дочернего объекта.
|
DisplayObject — Дочерний экранный объект в заданной позиции индекса.
|
RangeError — Исключение выдается, если индекс не существует в списке потомков.
| |
SecurityError — Данный дочерний объект отображения принадлежит изолированной программной среде, к которой нет доступа. Чтобы избежать такой ситуации, дочерний ролик должен вызвать метод Security.allowDomain() .
|
См. также
container
, а затем добавляется три экранных объекта в список потомков объекта container
. После вызова метода getChildAt()
отображаются позиции дочерних объектов.import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); var sprite2:Sprite = new Sprite(); var sprite3:Sprite = new Sprite(); container.addChild(sprite1); container.addChild(sprite2); container.addChildAt(sprite3, 0); trace(container.getChildAt(0) == sprite3); // true trace(container.getChildAt(1) == sprite1); // true trace(container.getChildAt(2) == sprite2); // true
getChildByName | () | метод |
public function getChildByName(name:String):DisplayObject
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает экземпляр дочернего экранного объекта с заданным именем. Если заданное имя соответствует нескольким дочерним экранным объектам, метод возвращает тот, что идет первым в списке потомков.
Метод getChildAt()
работает быстрее метода getChildByName()
. Метод getChildAt()
Обращается к потомку из кэшированного массива, а методу getChildByName()
приходится искать потомка через связанный список.
Параметры
name:String — Имя искомого потомка.
|
DisplayObject — Дочерний экранный объект с заданным именем.
|
SecurityError — Данный дочерний объект отображения принадлежит изолированной программной среде, к которой нет доступа. Чтобы избежать такой ситуации, дочерний ролик должен вызвать метод Security.allowDomain() .
|
См. также
container
, а затем в него добавляется два дочерних экранных объекта. Затем код вызывает методы getChildByName()
и getChildIndex()
, чтобы получить позицию индекса потомка объекта container
с именем "sprite1"
.
import flash.display.Sprite; import flash.display.DisplayObject; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); var target:DisplayObject = container.getChildByName("sprite1"); trace(container.getChildIndex(target)); // 0
getChildIndex | () | метод |
public function getChildIndex(child:DisplayObject):int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает позицию индекса для дочернего
экземпляра DisplayObject.
Параметры
child:DisplayObject — Искомый экземпляр DisplayObject.
|
int — Позиция индекса для искомого дочернего экранного объекта.
|
ArgumentError — Выдается исключение, если дочерний параметр не является потомком данного объекта.
|
container
, а затем в него добавляется два дочерних экранных объекта. Затем код вызывает методы getChildByName()
и getChildIndex()
, чтобы получить позицию индекса потомка объекта container
с именем "sprite1"
.
import flash.display.Sprite; import flash.display.DisplayObject; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); var target:DisplayObject = container.getChildByName("sprite1"); trace(container.getChildIndex(target)); // 0
getObjectsUnderPoint | () | метод |
public function getObjectsUnderPoint(point:Point):Array
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает массив объектов, расположенных ниже заданной позиции и являющихся дочерними объектами любого уровня для данного экземпляра DisplayObjectContainer. Дочерние объекты, недоступные по соображениям безопасности, опускаются из возвращенного массива. Чтобы определить, затрагивается ли возвращенный массив ограничением с целью обеспечения безопасности, вызовите метод areInaccessibleObjectsUnderPoint()
.
Параметр point
находится в координатной плоскости рабочей области, которая может отличаться от координатной плоскости контейнера экранных объектов (если это не рабочая область). Можно использовать методы globalToLocal()
и localToGlobal()
для преобразования точек между этими координатными плоскостями.
Параметры
point:Point — Точка, под которой следует искать.
|
Array — Массив объектов, расположенных ниже заданной позиции и являющихся дочерними объектами любого уровня для данного экземпляра DisplayObjectContainer.
|
См. также
container
, а затем в него добавляется два пересекающихся дочерних экранных объекта. Затем код дважды вызывает метод getObjectsUnderPoint()
: один раз с использованием точки, касающейся только одного объекта, а затем с использованием точки, в которой объекты пересекаются. Свойство length
возвращенного массива показывает количество объектов контейнера в каждой точке.
import flash.display.Sprite; import flash.geom.Point; var container:Sprite = new Sprite(); var square1:Sprite = new Sprite(); square1.graphics.beginFill(0xFFCC00); square1.graphics.drawRect(0, 0, 40, 40); var square2:Sprite = new Sprite(); square2.graphics.beginFill(0x00CCFF); square2.graphics.drawRect(20, 0, 30, 40); container.addChild(square1); container.addChild(square2); var pt:Point = new Point(10, 20); var objects:Array = container.getObjectsUnderPoint(pt); trace(objects.length); // 1 pt = new Point(35, 20); objects = container.getObjectsUnderPoint(pt); trace(objects.length); // 2
removeChild | () | метод |
public function removeChild(child:DisplayObject):DisplayObject
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Удаляет заданный дочерний
объект DisplayObject из списка потомков экземпляра DisplayObjectContainer. Свойство parent
удаленного потомка получает значение null
, а сам объект очищается, если нет других ссылок на потомка. Позиции индекса экранных объектов, расположенных над потомком в DisplayObjectContainer уменьшаются на 1.
Сборка мусора — это процесс, с помощью которого проигрыватель Flash Player перераспределяет неиспользуемую память. Когда на переменную или объект больше нет ссылок или он хранится в другом месте, сборщик мусора очищает и утилизирует память, которую он занимал, при условии отсутствия ссылок
Параметры
child:DisplayObject — Удаляемый экземпляр DisplayObject.
|
DisplayObject — Экземпляр DisplayObject, передаваемый в параметре child .
|
ArgumentError — Выдается исключение, если дочерний параметр не является потомком данного объекта.
|
container
, а затем в него добавляется два дочерних экранных объекта. Для объекта container
добавляется прослушиватель событий, чтобы когда пользователь нажимает на дочерний объект контейнера, метод removeChild()
удалял его из списка потомков контейнера.
import flash.display.DisplayObject; import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); addChild(container); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(120, 40, 40); container.addChild(circle1); container.addChild(circle2); container.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { container.removeChild(DisplayObject(event.target)); }
removeChildAt | () | метод |
public function removeChildAt(index:int):DisplayObject
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Удаляет дочерний DisplayObject из заданной позиции индекса
в списке потомков DisplayObjectContainer. Свойство parent
удаленного потомка получает значение null
, а сам объект очищается, если нет других ссылок на потомка. Позиции индекса экранных объектов, расположенных над потомком в DisplayObjectContainer уменьшаются на 1.
Сборка мусора — это процесс, с помощью которого проигрыватель Flash Player перераспределяет неиспользуемую память. Когда на переменную или объект больше нет ссылок или он хранится в другом месте, сборщик мусора очищает и утилизирует память, которую он занимал, при условии отсутствия ссылок
Параметры
index:int — Дочерний индекс объекта DisplayObject для удаления.
|
DisplayObject — Удаленный экземпляр DisplayObject.
|
SecurityError — Данный дочерний экранный объект принадлежит изолированной программной среде, к которой нет доступа у вызывающего объекта. Чтобы избежать такой ситуации, дочерний ролик должен вызвать метод Security.allowDomain() .
| |
RangeError — Исключение выдается, если индекс не существует в списке потомков.
|
container
, а затем в него добавляется два дочерних экранных объекта. Затем код показывает, что при вызове метода removeChildAt()
для удаления потомка на самой нижней позиции индекса (0) все остальные дочерние объекты в списки перемещаются вниз на одну позицию.
import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); trace(container.numChildren) // 2 container.removeChildAt(0); trace(container.numChildren) // 1 trace(container.getChildAt(0).name); // sprite2
setChildIndex | () | метод |
public function setChildIndex(child:DisplayObject, index:int):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Изменяет положение существующего потомка в DisplayObjectContainer. Это отражается на иерархическом представлении дочерних объектов. Так, в следующем примере показано три разных объекта с именами a, b и c в позициях индекса 0, 1 и 2 соответственно.
Когда используется метод setChildIndex()
и указывается уже занятая позиция индекса, меняются только позиции между прежней и новой позицией экранного объекта. Все остальные остаются без изменения. Если потомок перемещается на более НИЗКУЮ позицию, позиции всех потомков между этими позициями станут на 1 ВЫШЕ. Если потомок перемещается на более ВЫСОКУЮ позицию, позиции всех потомков между этими позициями станут на 1 НИЖЕ. Например, если контейнер экранных объектов из прошлого примера имеет имя container
, можно поменять позициями экранные объекты с именами a и b, вызвав следующий код:
container.setChildIndex(container.getChildAt(1), 0);
В результате этого объекты выстраиваются следующим образом:
Параметры
child:DisplayObject — Дочерний экземпляр DisplayObject, для которого нужно изменить номер индекса.
| |
index:int — Полученный в результате номер индекса для дочернего экранного объекта child .
|
RangeError — Исключение выдается, если индекс не существует в списке потомков.
| |
ArgumentError — Выдается исключение, если дочерний параметр не является потомком данного объекта.
|
См. также
container
, а затем в него добавляется три немного пересекающихся дочерних экранных объекта. Когда пользователь нажимает на один из этих объектов, метод clicked()
вызывает метод setChildIndex()
, чтобы переместить нажатый объект на верхнюю позицию в списке отображения объекта container
.
import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); addChild(container); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFF0000); circle1.graphics.drawCircle(40, 40, 40); circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00FF00); circle2.graphics.drawCircle(100, 40, 40); circle2.addEventListener(MouseEvent.CLICK, clicked); var circle3:Sprite = new Sprite(); circle3.graphics.beginFill(0x0000FF); circle3.graphics.drawCircle(70, 80, 40); circle3.addEventListener(MouseEvent.CLICK, clicked); container.addChild(circle1); container.addChild(circle2); container.addChild(circle3); addChild(container); function clicked(event:MouseEvent):void { var circle:Sprite = Sprite(event.target); var topPosition:uint = container.numChildren - 1; container.setChildIndex(circle, topPosition); }
swapChildren | () | метод |
public function swapChildren(child1:DisplayObject, child2:DisplayObject):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Меняет местами (в порядке "от начала к концу") два заданных дочерних объекта. Все остальные дочерние объекты в контейнере экранных объектов остаются на прежних позициях.
Параметры
child1:DisplayObject — Первый дочерний объект.
| |
child2:DisplayObject — Второй дочерний объект.
|
ArgumentError — Выдается исключение, если любой из дочерних параметров не является потомком данного объекта.
|
container
, затем в него добавляются два дочерних экранных объекта, после чего иллюстрируется результат вызова метода swapChildren()
.
import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); trace(container.getChildAt(0).name); // sprite1 trace(container.getChildAt(1).name); // sprite2 container.swapChildren(sprite1, sprite2); trace(container.getChildAt(0).name); // sprite2 trace(container.getChildAt(1).name); // sprite1
swapChildrenAt | () | метод |
public function swapChildrenAt(index1:int, index2:int):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Меняет местами (в порядке "от начала к концу") дочерние объекты, расположенные в двух заданных позициях индекса в списке потомков. Все остальные дочерние объекты в контейнере экранных объектов остаются на прежних позициях.
Параметры
index1:int — Позиция индекса первого дочернего объекта.
| |
index2:int — Позиция индекса второго дочернего объекта.
|
RangeError — Если ни один индекс не существует в списке потомков.
|
container
, затем в него добавляются три дочерних экранных объекта, после чего показывается, как вызов методаswapChildrenAt()
изменяет список отображения контейнера.
import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; var sprite3:Sprite = new Sprite(); sprite3.name = "sprite3"; container.addChild(sprite1); container.addChild(sprite2); container.addChild(sprite3); trace(container.getChildAt(0).name); // sprite1 trace(container.getChildAt(1).name); // sprite2 trace(container.getChildAt(2).name); // sprite3 container.swapChildrenAt(0, 2); trace(container.getChildAt(0).name); // sprite3 trace(container.getChildAt(1).name); // sprite2 trace(container.getChildAt(2).name); // sprite1
DisplayObjectContainerExample
создается последовательность из пяти оранжевых квадратов Это можно сделать, выполнив следующие действия.
configureAssets()
.configureAssets()
создает объекты Sprite с именами child
и lastChild
.for
создает мять оранжевых квадратов и располагает их один за другим.CustomSprite
конструктор вызывает его метод draw()
, который рисует квадрат размером 50 х 50 пикселов путем вызова методов beginFill()
, drawRect()
и endFill()
класса Graphics. Метод addChild()
добавляет каждый квадрат в список отображения.package { import flash.display.DisplayObject; import flash.display.Sprite; public class DisplayObjectContainerExample extends Sprite { private var gutter:uint = 5; private var childCount:uint = 5; public function DisplayObjectContainerExample() { configureAssets(); } private function configureAssets():void { var child:Sprite = new CustomSprite(); var lastChild:Sprite = child; for (var i:uint = 1; i <= childCount; i++) { child = new CustomSprite(); child.x = lastChild.x + lastChild.width + gutter; addChild(child); lastChild = child; } } } } import flash.display.Sprite; class CustomSprite extends Sprite { private var size:uint = 50; private var bgColor:uint = 0xFFCC00; public function CustomSprite() { draw(size, size); } private function draw(w:uint, h:uint):void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, w, h); graphics.endFill(); } }