![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2009
Адрес: Донецк
Сообщений: 16
|
Такая ситуация. Есть несколько MovieClip-ов, расположенных в массиве, например:
Main.stairs[0] = new RightHeart; Main.stairs[1] = new RightHeart; Main.stairs[2] = new RightHeart; Как сделать правильно? Заранее благодарен за ответы. |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
много способов.
Самый элементарный - воспользоваться тем, что MovieClip - динамический класс for (var i:int=0; i<3; i++){ var obj:RightHeart = new RightHeart (); obj.key = i; //у каждого объекта теперь свой key obj.addEventListener (MouseEvent.CLICK, clickHandler); Main.stairs.push(obj); } function clickHandler (e:Event):void { var obj:RightHeart = e.target as RightHeart; trace (obj.key); //какой key у объекта по которому кликнули? } P.S. Не ленитесь ставить () после объявления экземпляра класса. Не создавайте функцию в addEventListener - они потом висят в памяти.
__________________
мой пустой блог |
|
|||||
|
Регистрация: Oct 2009
Адрес: Донецк
Сообщений: 16
|
Спасибо за быстрый ответ и за замечания :-) Буду пробовать.
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Есть еще Array.indexOf()
))) А правильнее по-моему просто завести в классе RightHeart свойство экземпляра key.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Oct 2009
Адрес: Донецк
Сообщений: 16
|
Цитата:
|
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
не, это как раз мой способ, а он имеет ввиду создать класс
и связать его с мувиком. Так, как бы, правильнее, чтобы потом через много-много дней можно было вспомнить, какие свойства есть у объекта RightHeart, и откуда взялось key.
__________________
мой пустой блог |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
... public class RightHeart extends MovieClip // или Sprite { private var _key:uint; //.... public function set key (value:uint):void { _key = value } public function get key ():uint { return _key } }
__________________
Reality.getBounds(this); |
|
|||||
|
стервочка (я мужик)
|
грамотнее, на самом деле, создавать хэши с "приватными" классами, в которых хранятся нужные вам значения.
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.utils.Dictionary; /** * @author BlooDHounD * @playerversion Flash 9 * @langversion 3.0 */ public class test extends Sprite { public function test() { super(); var mc:Sprite = new Sprite(); // создаём свойства не создавая наследников this._hash[ mc ] = new MyProps(); } private const _hash:Dictionary = new Dictionary(); private function handler_click(event:MouseEvent):void { var props:MyProps = this._hash[ event.target ]; // do something } } } internal final class MyProps { public function MyProps() { super(); } public var var1:Number; public var var2:String; } |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|