Динамическое создание обьектов, получение их ID

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
magsim
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11

Re: Динамическое создание обьектов, получение их ID

Сообщение magsim »

Alazaur писал(а):Да все правильно, только уникальный ID вычислять не обязательно, можно так:

Код: Выделить всё

arr.push(element);
Хорошо, только вот как всетаки обращаться к обьктам созданным динамически? По событию мыши CLIK допустим выводился его id в вывод.
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Динамическое создание обьектов, получение их ID

Сообщение Alazaur »

Код: Выделить всё

var arr:Array = new Array();for (var i:int = 0; i < 20; i++) {    arr[i] = new Mc();    arr[i].x = arr[i].width * ( i % 5 );    arr[i].y = arr[i].height * Math.floor( i / 5 );    arr[i].id = i;    arr[i].addEventListener(MouseEvent.CLICK, clickHandler);    addChild(arr[i]);} function clickHandler(e:MouseEvent):void {    trace(e.target.id);}
magsim
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11

Re: Динамическое создание обьектов, получение их ID

Сообщение magsim »

Большое спасибо, а если не сложно можно еще пример:
как по нажатию добавляется один обьект, а при последующих нажатиях еще обьет рядом через 10 пикс ( в строке может бвть максимум 4 )
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Динамическое создание обьектов, получение их ID

Сообщение Alazaur »

По нажатию куда на определенную кнопку? И что должно быть, когда пользователь нажал 5й раз - просто не добавлять объект или добавлять его в начальную позицию первого, но ниже?
magsim
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11

Re: Динамическое создание обьектов, получение их ID

Сообщение magsim »

Alazaur писал(а):По нажатию куда на определенную кнопку? И что должно быть, когда пользователь нажал 5й раз - просто не добавлять объект или добавлять его в начальную позицию первого, но ниже?
Забудим тот пример, есть просто кнопка пользватель нажал один раз добавился один обьект, еще раз нажал добавилься еще один правее, и так далее.
но в одной строке может быть максимум 4 обьекта. да если жалал 5-й раз то ниже и так далее
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Динамическое создание обьектов, получение их ID

Сообщение sanych_dv »

Впору новый термин вводить: "форумное иждивенчество" ).
magsim
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11

Re: Динамическое создание обьектов, получение их ID

Сообщение magsim »

sanych_dv писал(а):Впору новый термин вводить: "форумное иждивенчество" ).
Почему же, просто тот пример мне очень помог, темболее я прошу лишь пример в виде части кода.
От темы я вроде не отошел.
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Динамическое создание обьектов, получение их ID

Сообщение Alazaur »

Код: Выделить всё

var count:int = 0;btn.addEventListener(MouseEvent.CLICK, addObject); function addObject(e:MouseEvent) {    var mc:Mc = new Mc();    mc.x = mc.width * (count%4);    mc.y = mc.width * Math.floor(count/4);    addChild(mc);    count++;}
sanych_dv, ога, и кнопку "Make App" придумывать
magsim
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11

Re: Динамическое создание обьектов, получение их ID

Сообщение magsim »

Большое спасибо, но в продолжение темы (чтобы новую несоздавать)

Создаем динамически обькт:

Код: Выделить всё

var arr:Array = [];var count:int = 0;btn.addEventListener(MouseEvent.CLICK, fun);function fun(e:MouseEvent):void{    var mc:Mc = new Mc();    mc.x = mc.width * (count%4);    mc.y = mc.width * Math.floor(count / 4);    arr[count] = mc;    arr[count].id = count;    sp.addChild(arr[count]);    arr[count].addEventListener(MouseEvent.CLICK, clickHandler);    trace(count);    count++;} 
правильно ли я поместил в массив?

Но теперь я немного изменил обьект mc (был квадрат 20х20)
Сделал 20х40, и теперь они при добавлениее расходятся дург от друга где на пикс-40 (т.е не вплотну ю друг к другу) или как их например разместить 10 пикс друг от друга?

И и так же добавил в прямоугольник компонент NumericStepper - имя экземпляра дал num
и Пытаюсь ему передать id элемента:

Код: Выделить всё

 mc.y = mc.width * Math.floor(count / 4);    mc.num.value =count;    arr[count] = mc;

Выдает ошибку в вывод:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at _000_fla::MainTimeline/fun()
В чем может быть дело? как правильно обращаться к дочерним обьектам?
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Динамическое создание обьектов, получение их ID

Сообщение Alazaur »

По поводу расхождения друг от друга вот тут

Код: Выделить всё

mc.y = mc.width * Math.floor(count / 4);
надо вот так конечно же

Код: Выделить всё

mc.y = mc.height * Math.floor(count / 4);
Мой косяк, машинально написал)))
По поводу второго проверьте еще раз имя экземпляра. Обращаетесь вы верно.
Ответить