|
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Работа с несколькими объектами
Здравствуйте. Мне необходимо создать несколько слушателей событий для объектов, которые вызывают схожие функции, работающие с данными объектами. Как это можно осуществить? Я пробовал через массив объектов, но для его элементов нельзя выполнять методы MovieClip
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Объясните то же самое, но обычными словами. Что Вы хотите сделать, какие у Вас объекты?
|
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
У меня шесть квадратов. Когда на один из них кликаешь, x шарика присваивается значение x квадрата, на который кликнули
|
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Ого, спасибо, а я и не знал об операторе as
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
package { import flash.display.Graphics; import flash.display.Shape; import flash.display.Sprite; import flash.events.MouseEvent; public class Main extends Sprite { private static const NUM_RECT: int = 5; private var _allRects: Array; private var _circle: Shape; public function Main() { this._allRects = []; var rect: Sprite; const STAGE_WIDTH: int = super .stage.stageWidth; const STAGE_HEIGTH: int = super .stage.stageHeight; for( var i: int = 0; i < NUM_RECT; i++ ){ rect = this.createRect( 50, 50, 0xcccccc ); rect.x = STAGE_WIDTH * Math.random( ); rect.y = STAGE_HEIGTH * Math.random( ); super .addChild( rect ); rect.addEventListener( MouseEvent.CLICK, rect_mouseClickHandler ); this._allRects[i] = rect; } this._circle = this.createCircle( 10, 0x000000 ); super .addChild( this._circle ); } private function rect_mouseClickHandler( event: MouseEvent ): void{ var rect: Sprite = event.target as Sprite; this._circle.x = rect.x; } private function createCircle( radius: int, color: uint ): Shape{ var circle: Shape = new Shape( ); var g: Graphics = circle.graphics; g.beginFill( color ); g.drawCircle( 0, 0, radius ); g.endFill( ); return circle; } private function createRect( width: int, height: int, color: uint ): Sprite{ var rect: Sprite = new Sprite( ); var g: Graphics = rect.graphics; g.beginFill( color ); g.drawRect( 0, 0, width, height ); g.endFill( ); return rect; } } } |
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
А как тогда узнать, с каким именно объектом произошло событие (например, клик)?
|
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Я пробовал, он пишет, что нет доступа к несуществующему объекту
|
Часовой пояс GMT +4, время: 12:00. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|