Просмотр полной версии : Вопрос идентификации обьектов созданых в цикле
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;
}
С уважением. Ворон.
Оригинал написал(а) 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 переменніх вместо одной пожалуста.
Ворон.
попробуй так:
создай новый клип напиши в его слое скрипт
_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 - переменная внутри нее...
С уважением. Ворон.
---------------------------------
Прости но файл, который ты приэтачил пуст...
---------------------------------
еще раз
здесь по нажатию на объект выводиться только его имя
Raven B.
28.02.2004, 19:57
Спасибо за файлик. но это ничего не прояснило. вопрос то в другом:
как каждому из твоих шариков присвоить переменную с какими то значением и по клику на шарик заставить его мониторить свое значение своей переменной...
С уважением. Ворон.
так и не сумел понять в чем трабл (тебе бы выделить его в неработающий пример)
глянь может это надо
Raven B.
28.02.2004, 23:40
2silin:
Я не знаю понял ли ты проблему или нет, но ты ее решил.
Низкий поклон!
С искренней благодарностью и уважением. Ворон.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.