Форум 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)
-   -   LoadVars ??? (http://www.flasher.ru/forum/showthread.php?t=87552)

repz 07.11.2006 20:17

LoadVars ???
 
Есть конструкция следующего содержания:
Код:

var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean) {
    if (success) {
          } else {
    trace("Ошибка при загрузке.");
    }
};
my_lv.load("data.txt");

и кнопка с кодом:
Код:

teams_mc.text=_root.my_lv["link"];
Все работает при простом запуске, а если через loadClip подгрузить в другой мув, то не работает, как справиться???
Заранее спасибо!!!!!

etc 07.11.2006 20:22

У тебя _root в данном случае будет ссылкой на рут того клипа, в который ты загрузил swf. Используй свойство _lockroot для нормальной ссылки на _root.

pkfun 07.11.2006 20:26

Вероятно дело в том, что вы вызываете переменную через рут. Если вы все, включая кнопку подгрузите в другой клип, то и объект loadVars будет принадлежать "руту" другого клипа.
Желательно поподробней код...

__ets
Одновременно написали. :D

repz 07.11.2006 20:31

2 __etc:
то есть
Код:

teams_mc.text=_lockroot.my_lv["link"];
у мя просто зыгружающая(контейнер) лежит на 3 папки выше чем загружаемая - это никак не влияет, т.е. все равно пишем :
Код:

my_lv.load("data.txt");

pkfun 07.11.2006 20:33

Про _lockroot почитайте в help.

repz 07.11.2006 20:33

2 pkfun:
Код подробнее:
Контейнер:
Код:

mcLoader.loadClip("1/1/1.swf");

pkfun 07.11.2006 20:35

Цитата:

Сообщение от repz
у мя просто зыгружающая(контейнер) лежит на 3 папки выше чем загружаемая - это никак не влияет, т.е. все равно пишем :
Код:

my_lv.load("data.txt");

Как расположены папки на жестком диске компа не имеет значения в данном случае. Здесь главное как отновительно друг друга происходят загрузки, на какие уровни вы грузите какие swf.
Цитата:

loadClip(url:String, target:Object)
Когда вызывается метод loadClip класса movieClipLoader необходимо указать и "пункт назначения" - клип в который происходит загрузка.

etc 07.11.2006 20:36

repz, про _lockroot ищите в хелпе, там подробно разжевано.

repz 07.11.2006 20:48

2 __etc:
Все что понял из прочитанного на вражеском языке - это
Код:

this._lockroot=true;
, но что то не пашет се равно, а гружу все скорее всего :-)) в _level0.
P.S. .....help....

repz 07.11.2006 21:05

Код:

_lockroot = true;
не помогает???
Не использование _root - не помогает????
Код:

teams_mc.text=my_lv["link"];
Код:

teams_mc._lockroot=true;
, так же не помогает.
так же как и:
Код:

this._lockroot=true;

pkfun 07.11.2006 21:26

У вас есть, скажем так, главный фильм. В нем находится код MovieClipLoader-а. Что-то такое:
Код:

//
var pt:MovieClip = this;
//
//здесь прописывается реакция загрузчика на различные события загрузки
mc_listener.onLoadStart = function(mc:MovieClip) {
        trace("Началась загрузка");
};
mc_listener.onLoadError = function(mc:MovieClip) {
        trace("Ошибка загрузки");
};
mc_listener.onLoadComplete = function(mc:MovieClip) {
        trace("Все загрузилось");
};
/*создаем новый экземпляр класса MovieClipLoader, создаем слушатель и привязываем слушатель к данному экземпляру класса MovieClipLoader(слушатель будет слушать его события).*/
//
var mc_loader:MovieClipLoader = new MovieClipLoader();
var mc_listener:Object = {};
mc_loader.addListener(mc_listener);
//
//создаем пустой клип, в который будем загружать внешний sfw
pt.createEmptyMovieClip("newSwf", pt.getNextHighestDepth());
//
//даем команду на загрузку внешнего swf
mc_loader.loadClip("data.sfw", pt.newSwf);

Если говорить о расположении файлов на диске, главный фильм это нулевой уровень. Если вы хотите загрузить в него внешний swf который лежит в той же папке, что и главный фильм (data.swf), то загрузка будет выглядеть так:
Код:

//
//даем команду на загрузку внешнего swf
mc_loader.loadClip("data.sfw", pt.newSwf);

Если data.swf лежит в папке на уровень ниже,например в папке main, то так:
Код:

//
//даем команду на загрузку внешнего swf
mc_loader.loadClip("main/data.sfw", pt.newSwf);

Если data.swf лежит в папке на уровень выше, то так:
Код:

//
//даем команду на загрузку внешнего swf
mc_loader.loadClip("../data.sfw", pt.newSwf);


repz 07.11.2006 21:29

И все же почему не выполняется скрипт в подгружаемом мувике?
P.S. пишет Error opening URL data.swf, хотя он лежит там.???

pkfun 07.11.2006 21:34

Пути, пути...
Вот попробуйте,
Код:

my_lv.load("1/1/data.txt")
Когда вы загружаете ваш фильм в фильм на три уровня выше, то и все команды из подгруженного мува должны корректироваться с учетом нового "адреса". :)

repz 07.11.2006 21:37

Да, сработало вместе с
Код:

this._lockroot=true;
,
СПАСИБО ОГРОМНОЕ!!!!!:-))))))))))))))))))))))))))))))))))))

pkfun 07.11.2006 21:46

Очень хорошо. :)
Просто на будушее запомните, что когда вы загружаете в основной фильм внешний swf, то основной фильм как будто "забирает" внешний swf с его прежнего места и размещает в своей папке.

repz 07.11.2006 22:24

Ок, спасибо сче раз, запомню.


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

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