Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Связать объект и значение (http://www.flasher.ru/forum/showthread.php?t=138187)

Skoder 01.04.2010 15:11

Связать объект и значение
 
Всем доброго времени суток. Помогите разобраться пожалуйста. Есть код:
Код AS3:

var array:Array = new Array(1, 2, 3, 4);
 
for (var i:int = 0; i < array.length; i++) {
  newSprite = new Sprite();
 
  newSprite.graphics.beginFill(0x000000);
  newSprite.graphics.drawCircle(0, 0, 10);
  newSprite.graphics.endFill();
 
  newSprite.x =  newSprite.width*i;
  addChild(newSprite);
 
  newSprite.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler)
}

Как связать array с newSprite?

во втором ActionScript делал так:
Код AS1/AS2:

newSprite.value = array[i];

и при наведении на newSprite писал:
Код AS1/AS2:

trace(this.value)

Заранее спасибо!

silin 01.04.2010 15:26

как вариант
Код AS3:

var array:Array = new Array(1, 2, 3, 4);
var map:Dictionary = new Dictionary();
for (var i:int = 0; i < array.length; i++) {
        var newSprite:Sprite = new Sprite();
        map[newSprite] = array[i];
 
        newSprite.graphics.beginFill(0x000000);
        newSprite.graphics.drawCircle(0, 0, 10);
        newSprite.graphics.endFill();
 
        newSprite.x =  newSprite.width*i;
        addChild(newSprite);
 
        newSprite.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler)
}
 
 
function rollOverHandler(event:Event):void
{
        var id:*= map[event.currentTarget];
        trace( "id : " + id );
}


Skoder 01.04.2010 16:26

silin, огромное спасибо

Art_133 01.04.2010 17:34

Silin
А почему вы создали экземпляр Класса var Dictionary, а не просто ещё один Array или Object?

silin 01.04.2010 17:50

в массиве или объекте придется копаться, чтобы опредить индекс или еще какое соответствие с массивом данных.., хотя тоже можно

можно еще создавать не Sprite-ты, а его наследников, у которых определно свойство для данных и хранить данные или индекс в них самих,
можно и name Sprite-а какой-то идентификатор загнать, вариантов много..

в-общем, потому что *как вариант*, который мне больше по душе

Art_133 01.04.2010 19:37

Ага, понят. Выходит Dictionary это что-то по типу "модного" Класса Array?

silin 01.04.2010 19:57

>>Выходит Dictionary это что-то по типу "модного" Класса Array?
не, не выходит ..:)
Dictionary - коллекция, ключами свойств которой, могут быть ссылки на объекты
в этом и удобство: имея ссылку на объект (тот же event.currentTarget) получаем нужное свойство
с Array (ключи - целые) или Object (ключи - строки) такое не проходит

Art_133 02.04.2010 12:36

Это супер. Можно параметры для какого-нибудь Клипа, объекта забивать в Dictionaty и вытягивать простой ссылкой на объект, я правильно понял?


Часовой пояс GMT +4, время: 08:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.