Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Вопрос идентификации обьектов созданых в цикле (http://www.flasher.ru/forum/showthread.php?t=55102)

Raven B. 25.02.2004 02:41

Вопрос идентификации обьектов созданых в цикле
 
Доброго времени суток.

Есть массив $bg_text.length в формате имя_картинки:имя_поля
Я хочу что бы при нажатии на обьект содержащий картинку в ф-ю передавалось ее имя... но тут возникает незадача - если
trace(scroll1.ScrollBody[$tnt].gobo);
работает нормально, то внутри функции
scroll1.ScrollBody[$tnt].onRelease = function ()
значение undefined т.к. береться "текущее" значение $tnt (насколько я понял). подскажите как мне "закрепить" за функцией каждого обьекта его имя?


for(i=0;i<$bg_text.length;i=i+2){

$tnt='loga'+$ind;

scroll1.ScrollBody.attachMovie("plane",$tnt,$ind);
scroll1.ScrollBody[$tnt]._y=$lists;
scroll1.ScrollBody[$tnt].pic.loadMovie(_global.HOST+"img/"+$bg_text[$ind]+".jpg");
scroll1.ScrollBody[$tnt].gobo=$bg_text[$ind+1];
trace(scroll1.ScrollBody[$tnt].gobo);
scroll1.ScrollBody[$tnt].onRelease = function ()
{
_root.open_full(scroll1.ScrollBody[$tnt].gobo);
}

$ind=$ind+1;
}



С уважением. Ворон.

Eldar 25.02.2004 12:08

Re: Вопрос идентификации обьектов созданых в цикле
 
Цитата:

Оригинал написал(а) Raven B.
for(i=0;i<$bg_text.length;i=i+2){

$tnt='loga'+$ind;

scroll1.ScrollBody.attachMovie("plane",$tnt,$ind);
scroll1.ScrollBody[$tnt]._y=$lists;
scroll1.ScrollBody[$tnt].pic.loadMovie(_global.HOST+"img/"+$bg_text[$ind]+".jpg");
scroll1.ScrollBody[$tnt].gobo=$bg_text[$ind+1];
trace(scroll1.ScrollBody[$tnt].gobo);
scroll1.ScrollBody[$tnt].onRelease = function ()
{
_root.open_full(scroll1.ScrollBody[$tnt].gobo);
}

$ind=$ind+1;
}
[/b]
scroll1.ScrollBody[$tnt].onRelease = function ()
{
_root.open_full(this.gobo);
}

"...никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть." Льюис Кэрролл

Raven B. 25.02.2004 17:05

Пробовал.
Не помогает.
scroll1.ScrollBody[$tnt].gobo - почему то не определен.

похоже нельзя обьявить (использовать) переменную "прикрепленную" к обьекту таким образом:
scroll1.ScrollBody[$tnt].gobo=$bg_text[$ind+1];

я создавал переменную внутри прикрепляемого обьекта с таким же именем. у них не пересекаються области видимости.
Упорно не могу понять почему.

Подскажите плз.

Ворон.

Nox Noctis 25.02.2004 17:17

эльдар правильно ответил

у тебя с областями видимости полная ерунда..
обрати внимание откуда берется $tnt - ты ведь не указываешь путь к переменной, значит она берется из того контейнера, где располагается само определение onRelease... то есть беется то значение которое осталось после выполнения цикла. а именно - последнее.
Код:

for (var i = 0, $ind = 0; i<$bg_text.length; i += 2, $ind++) {
        var $tnt = 'loga'+$ind;
        var neo = scroll1.ScrollBody.attachMovie("plane", $tnt, i);
        neo._y = $lists;
        neo.pic.loadMovie(_global.HOST+"img/"+$bg_text[i]+".jpg");
        neo.gobo = $bg_text[i+1];
        neo.onRelease = function() {
                _root.open_full(this.gobo);
        };
}

...проверяй, должно работать

Raven B. 25.02.2004 23:10

:(

Неработает.
Проблема там же где и была :confused:


var $tnt = 'loga'+$ind;
var neo = scroll1.ScrollBody.attachMovie("plane", $tnt, i);
neo._y = $lists;
neo.pic.loadMovie(_global.HOST+"img/"+$bg_text[i]+".jpg");
trace(neo.gobo);
neo.gobo = $bg_text[i+1];
trace(neo.gobo);
neo.onRelease = function() {
trace(this.gobo);
_root.open_full(this.gobo);
};


выдает

undefined -??!!
2 - значение $bg_text[i+1];
bibi - в первом фрейме plane написано
gobo="bibi";

Помогите разобраться почему мі получаем 2 переменніх вместо одной пожалуста.

Ворон.

новый 26.02.2004 08:10

Вложений: 1
попробуй так:
создай новый клип напиши в его слое скрипт

_parent.onPress = function(){
// твоя функция
trace("pressed: "+this._name);

}
затем вставь этот клип в свой клип "plane"
должно работать

Raven B. 27.02.2004 12:02

2новый:
Прости но файл, который ты приэтачил пуст...
Последовав твоему совету получил :
loga0
loga1
loga2
loga3
loga4
...
подставить их невозможно по двум причинам.
1. весь этот ряд формируеться динамически.... я упорно не могу понять как loga$i куда то подставить.
2.Это вряд ли что то даст, ведь путь к экземпляру:
scroll1.ScrollBody.loga$i
и gobo - переменная внутри нее...

С уважением. Ворон.

новый 28.02.2004 03:02

Вложений: 1
---------------------------------
Прости но файл, который ты приэтачил пуст...
---------------------------------
еще раз
здесь по нажатию на объект выводиться только его имя

Raven B. 28.02.2004 19:57

Спасибо за файлик. но это ничего не прояснило. вопрос то в другом:

как каждому из твоих шариков присвоить переменную с какими то значением и по клику на шарик заставить его мониторить свое значение своей переменной...

С уважением. Ворон.

silin 28.02.2004 22:14

Вложений: 1
так и не сумел понять в чем трабл (тебе бы выделить его в неработающий пример)
глянь может это надо


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

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