Форум 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=120501)

Baec 22.01.2009 11:16

Доступ к переменным
 
Каким образом Правильно можно организовать доступ к переменных одной флешки к переменным второй влешки. если первая флешка подгружается во вторую?

amexdesign 22.01.2009 12:02

есть различные способы, например передовать параметры через LocalConnection или через _level...

RidingTheFlash 22.01.2009 12:07

аналогичная проблема - пробовал через LocalConnection(соседний пост), но что-то не так. Передать-то передаёться, но как присвоить для дальнейшей обработки?
Код AS1/AS2:

var sending_lc:LocalConnection = new LocalConnection();
sending_lc.send("lc_name", "methodToExecute", 15); //отправитель. 15 - значение для передачи.
 
var receiving_lc:LocalConnection = new LocalConnection();//получатель.
receiving_lc.methodToExecute = function(param:Number) {
  parametr = param;
      }
receiving_lc.connect("lc_name");
var pageCount = parametr;//как правильно передать этот параметр в pageCount?

Или опишите пжлста как через _level это сделать...

Baec 22.01.2009 14:46

Да, хотелось бы услышать есть ли еще какой способ.
Я пробовал много вариантов.

iNils 22.01.2009 14:50

Отвечаю на поставленный вопрос.
В работе с загруженной флешкой и любым мувиклипом в составе базовой флешки - нет никакой разницы, кроме ограничения с атачем символов из библиотеки. Никаких LocalConnection тут не надо.

Baec 22.01.2009 15:13

Ответ конечно понятен, но есть тонкости
 
Код AS1/AS2:

 
ttxt2.text=_global._docRoot.pic_path; //вот тут ее тоже не видно
 
        var load_pic;
        load_pic= new MovieClipLoader();
 
        load_pic.onLoadComplete=function(){//закончили загрузку
                this.pic._width=640;
                this.pic._height=480;
 
                ttxt2.text=_global._docRoot.pic_path;//вот тут переменную видно
        };
        load_pic.loadClip(_global._docRoot.pic_path, pic);//а вот тут та же самая переменная не определена
 
 
 
 
 
 
link.onRelease=function()
{
        ttxt2.text=_global._docRoot.pic_path;//вот тут ее видно
        getURL(_global._docRoot.url_path,_new);
}

Врезультате получается что ее видно Везде. кроме как там где с ее помощью нужно подгрузить картинку, как так?

Боюсь сморозить глупость. я не профи, но в событии onEnterFrame видно все переменные, как вы и сказали. НО. Вне этого события (функции которая его обрабатывает Не видно. А всунуть в эту функцию подгрузку картинки не получается)

Добавлено через 9 минут
Проблему решил, но конечно 100% что коряво. Хотелось бы узнать можно ли это сделать более практично.

Код AS1/AS2:

var receiving_lc:LocalConnection = new LocalConnection();//получатель.
receiving_lc.methodToExecute = function(param:String) {
                          str1 = param;
                          ttxt3.text=param;
 
                          load_pic.loadClip(param, pic);
      }
receiving_lc.connect("lc_name");


wvxvw 22.01.2009 17:54

То, что вы пытаетесь сделать не возможно по определению - пока вы не определили переменную она будет неопределенной, это значит, что никакого значения в ней храниться не будет, о чем вам плеер и сообщает.
корме того, в тот момент как ваша рука тянется напечатать слова типа "_global", "_root", "_level" - сразу хватайте линейку другой рукой и по польцам, по пальцам :)

Baec 22.01.2009 18:46

Насчет линейки обязательно учту ))
 
Но...
1. Все эти переменные определены в первой флешке, из которой идет подгрузка этой. Т.е. они есть и в них есть значение.

2. Я уже смог сделать так чтобы все отображалось. Но. На другом хосте все то же самое и не работает. Поэтому и хочу узнать каким это образом делается нормально, а не так как у меня через ... общем отак от)

ОЙ! Миг прозрения! Черт. Словно яблоком по голове. А эти переменные должны быть определены ДО подгрузки флеши или можно позже?

Добавлено через 13 минут
Задал и ничего не получилось.
Да, кстати на локали все работает и ОТЛИЧНО

Траблы начинаются когда заливаю все это на сервер. С чем может быть связано?

Добавлено через 28 минут
Может ли что-то блокировать чтение этих переменных?
Флешка Точно подгружается но доступа к переменным нет. Пробовал (пальцы от линейки просто синие) все варианты:

Код AS1/AS2:

test1.text=_root.pic_path
 
test2.text=_global._docRoot.pic_path
 
test3.text=_level0.pic_path;
 
test4.text=_global.pic_path;
 
test5.text=pic_path;

При это переменная pic_path ТОЧНО определена во флешке куда происходит подгрузка этой флешки. И опять же на локали Все работает. Откудого такие траблы на сервере?

wvxvw 22.01.2009 20:40

А зачем вы их туда пихаете? в смысле в _global... ну, не знаю, если вы мазохист, тогда лучше вместо того, чтобы линейкой, ну, не знаю, пива выпить / музыку послушать...
объявите переменную у объекта, который у вас есть. Eсли это загружающая SWF, то если _lockroot == true в подгружаемой она будет _parent для пeрвого контейнера в визуальной иерархии клипов.
Если наоборот, то загруженная SWF будет находиться там, где был до этого клип, который вы использовали для ее загрузки.
Ну и естесственно не нужно забывать про политики безопасности, если загружающая и загружаемая флешки пришли из разных домейнов, то нужно чтобы они друг другу разрешали доступ к своим переменным. Делается это с помощью XML файла с политиками безопасности, либо в загружаемой и загружающей флешке должно быть указано какие домейны имеют право на получение данных содержащихся в ниx.

Baec 22.01.2009 20:56

Тонна полезной информации
 
Не. я не мазохист, это издержки непонимания сути происходящих процессов, а вот насчет пива это спасибо за идею )):drinks:

Не сочтите за наглость, но можно немного подробней по каждому пункту?
Например как сказать флешкам кому куда можно доступаться?
Что такой _lockroot = true ?

Я над этой траблой уже 2-е сутки, не день а именно сутки бьюсь. На локали работает, выделил тестовую площадку в инете - работает. А у заказчика на серваке не хотит. Сей форум - последняя инстанция. То что у меня всего 10 сообщений. а зарегестрирован я бог знает когда говорит о том что я свои проблемы привык решать сам и беспокою людей только в крайнем случае. Сегодня именно такой случай. Буду очень признателен за любую помощь.


Можно немного разъяснить насчет _parent. Т.е. если я объявляю переменную в подгружаемой флешке то могу стукнуть к тем что были в основной через парент. Для этого они должны быть там просто объявлены как меременные.

Не совсем понял что значит "В противном случае". Это если _lockroot = false ? И как тогда до нее достукаться?


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

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