Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   пропадает переменная (http://www.flasher.ru/forum/showthread.php?t=85047)

micolo 14.09.2006 15:18

пропадает переменная
 
Доьрого времени суток! У меня такая проблема. Реализую связку php+flash - у меня теряется flash переменная.
Вообщем вот код:
Код:

php = new LoadVars();

php.onLoad = function(success){
if(success){
php.decode(php.memo);

info=php.memo;

_root.scene2.createEmptyMovieClip("main", 21);
_root.scene2.main._x=150, _root.scene2.main._y=-30;

f=0;
f1=0;
f2=0;
str=info.split('^');
for(i=0;i<info.length;i++)
  {
         
vv=str[i];

_root.scene2.main.createEmptyMovieClip("next" +f, f-1);
eval("_root.scene2.main.next" +f)._x=f1, eval("_root.scene2.main.next" +f)._y=0+f2;
eval("_root.scene2.main.next" +f).createEmptyMovieClip("img", f-2);

loadMovie("img/image_object_small.php?id="+ vv, eval("_root.scene2.main.next" +f).img);       

eval("_root.scene2.main.next" +f).onRelease = function (f)
{
_root.scene2.per= vv;
_root.scene2.gotoAndStop(54);
}
f=f+1;       
f1=f1+90;
if(f%4==0)
{
f1=0;
f2=f2+90;
}
  }
}
else{
_root.texts="Ошибка";
}
}

php.sendAndLoad("php/1.php",php,"GET");

Есть корневая переменная _root.scene2.per которой нужно по onRelease присвоить значение. Если я пишу просто по тупому:
_root.scene2.per= "test";
то она приходит, если пишу :
_root.scene2.per= vv;
то есть значение из массива которое там используется - то ничего не приходит, хотя картинки по id загружаются, а проверка типа:
_root.scene2.per= vv+"test";
также как вы понимаете возвращает просто "test". В чём тут дело. Где моя ошибка?

Juice_Green 14.09.2006 15:30

есть такая команда trace, можно восользоваться ей и поэтапно посмотреть где что не так ,
для начала посмотреть значение переменной info

micolo 14.09.2006 15:36

командой trace воспользоваться не получится, так как из флаша swf не подгружает данные с веб сервера, но в любом случае данные приходят и info выглядит так 1^2^3^4^5^

Juice_Green 14.09.2006 15:41

Вот это да! командой trace можно воспользоваться всегда и увидеть ее результат в среде IDE.

почему же создаете массив, а сами отталкиваетесь от длины строки ?

Код:

str=info.split('^');
for(i=0;i<info.length;i++)
  {


micolo 14.09.2006 16:05

я говорю не про команду trace, а про то что мне её нужно вывести, чтобы проверить данные, когда данные из базы через php уже загружены, а из флаша этого не сделаешь - только через браузер

а по поводу этого цикла - это первое что мне пришло в голову для данного решения, если есть варианты - предложи своё...
но по сути дело это не меняет:

Код:

loadMovie("img/image_object_small.php?id="+ vv
эта переменная есть, а передаваться в корневую переменную не хочет....

Juice_Green 14.09.2006 16:38

по поводу цикла хотел сказать что символов в строке намного больше чем элементов в массиве, так что будут пустые итерации.

micolo 14.09.2006 18:00

а всё таки куда пропадает переменная ?

etc 14.09.2006 18:26

micolo, vv после выполнения цикла будет, скорее всего, пустым. Собственно, так и должно быть.
Для кнопок нужно присвоить локальную переменную, равную vv на момент выполнения цикла и использовать её, а не глобальную vv.

micolo 14.09.2006 20:42

__etc
можешь мой примерчик исправить, а то я вроде по всякому пробывал...
буду очень признателен....


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

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