PDA

Просмотр полной версии : Управление путем к изображению, которое подгружатся в ролик извне.


Alex_UA
30.07.2010, 15:43
Ситуация следующая:
Есть стандартный компонент ImageLoader через который загружается внешняя картинка.
Обычный код выглядит на подобие imageLoader.loadMovie("cars.jpg");
Но необходимо, чтобы путь к этой картинке можно было устанавливать во внешнем txt-файле. Как это сделать?

Хемуль
30.07.2010, 15:48
2 Alex_UA:
С помощью LoadVars прочитать переменную из внешнего текстового файла и загрузить картинку, используя полученную переменную в качестве URL'а картинки в методе loadMovie экземпляра класса ImageLoader.

Alex_UA
30.07.2010, 16:50
я просто не силен в программировании и плохо знаю синтаксис AS. думал, что кому-то будет не сложно подсказать. в общем, спасибо за внимание.

Хемуль
30.07.2010, 16:51
2 Alex_UA:
Ну, совсем недавно обсуждалось, как из внешнего текстового файла загрузить переменную:
http://www.flasher.ru/forum/showthread.php?t=142780

Alex_UA
30.07.2010, 17:53
Еще тогда один вопрос. В том примере в переменную variables передали значение в виде пути к файлу. Тоесть, как я понял, ее теперь можно использовать в LoadMovie, на подобие _root.all.imageLoader.loadMovie(variables);
Но я тут явно что-то не то сделал, поскольку ничего не работает.

Хемуль
30.07.2010, 18:09
Тоесть, как я понял, ее теперь можно использовать в LoadMovie, на подобие _root.all.imageLoader.loadMovie(variables);
Нет. Там был код:

var variables:LoadVars = new LoadVars();
variables.onLoad = function(success:Boolean)
{
if (success)
{
trace(variables.my_variable);
}
else
{
trace("Variables loading failed");
}
};
variables.load("http://www.mysite.com/variables.txt");

и
variables.txt:
my_variable=Hello, World!
variables - это переменная типа LoadVars, экземпляр этого класса. А вот после успешного запроса у этой переменной variables появится свойство my_variable.
Поэтому так:
_root.all.imageLoader.loadMovie(variables.my_variable);

Alex_UA
30.07.2010, 19:17
что-то я видимо делаю не правильно. возможно тип переменной в данном случае должен быть другой, но при отладке выдается ошибка:
Error opening URL 'file:///E|/work/unitorg/flash/undefined'
cars.jpg
Где cars.jpg - та картинка, которую я пытаюсь загрузить

Хемуль
30.07.2010, 19:18
2 Alex_UA:
Ну, у вас вместо имени файла undefined. Видимо, не загрузилась ваша переменная с именем картинки.

Alex_UA
30.07.2010, 19:54
А какие тут могут быть причины? Здесь в принципе и ошибку негде сделать. Содержимое текстового файла у меня просто выглядит так: my_variable=cars.jpg
В самом мувике код тот, что предложили вы, только с моими путями.

Извините, если задаю глупые вопросы, я просто и правда не силен в программировании.

Хемуль
30.07.2010, 20:14
2 Alex_UA:
Ну что ж... Крепите исходник своей флешки к сообщению. Сохраняйте его в FLA версии CS3. Прилагайте к флешке файлы всех используемых в ней классов, если такие есть. Прилагайте и ваш файл текстовый, и картинку. Если вы с флешкой работали в интернете и она где-то доступна, давайте ссылку.

Alex_UA
31.07.2010, 16:11
Вот:
http://stepstudio.com.ua/flash.rar

Извините, что не прикрепленным файлом - размер больше лимитированного оказался (3 метра).

Там в первом слайде я пытаюсь брать ссылку на файл из текстовика, а в остальных слайдах - просто на прямую подгружаю картинки

Хемуль
31.07.2010, 17:13
2 Alex_UA:
Ну вы даёте...
Вот ваш код:
var variables:LoadVars = new LoadVars();
variables.onLoad = function(success:Boolean)
{
if (success)
{
trace(variables.my_variable);
}
else
{
trace("Variables loading failed");
}
};
variables.load("iurl.txt");
_root.all.imageLoader.loadMovie(variables.my_variable);
Вы же пытаетесь загрузить картинку раньше, чем получаете её адрес. Я же вам не зря написал обработчик события onLoad. Эта функция выполняется тогда, когда данные загружены. Причём, загрузка асинхронная. То есть, вы сказали флешке "Грузи!" и не дожидаясь окончания загрузки сразу же пытаетесь открыть картинку.
Унесите загрузку картинки в обработчик onLoad, в ту его часть, где стоит trace(variables.my_variable);