![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2008
Сообщений: 30
|
Здравствуйте! Не ругайте сразу и не говорите что обсуждалось много раз, просмотрел кучу тем с этой проблемой, но так и не нашел ответа:
Проблема следующая: Я гружу swf с помощью MovieClipLoader, вопрос - как мне ей(swf) передать параметр чтобы он был доступен внутри этой swf, если в ее коде он определяется как my.swf: т.е. это обычный баннер, который принимает параметр, чтобы при нажатии на него он переходил на переданный урл. Если его вставить в HTML и через flashvars передать, то все замечательно работает, а вот если его загрузить внутрь другой swf, то он перестает видеть переданную ему переменную. Конкретно я делаю так, прям по примеру из хелпа: var mc:MovieClip = this.createEmptyMovieClip('mc', getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadComplete = function(target_mc:MovieClip) {
target_mc._root.link = 'http://flasher.ru/';
};
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(mclListener);
mcLoader.loadClip(my.swf, mc);
Подскажите пожалуйста, что я не так делаю или в чем может быть проблема? причем абсолютно пофигу каким способом загружать флэшку, главное решить задачу с передачей параметра. P.S: Кстати изменять или добавлять в подгружаемую флэшку ничего нельзя, считайте ее исходной Заранее спасибо! |
|
|||||
|
Модрон-ветеринар
|
Используйте onLoadInit, а не onLoadComplete.
__________________
Идите первым! |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 30
|
да пробовал, результат тот же.
|
|
|||||
|
Модрон-ветеринар
|
var mc:MovieClip = this.createEmptyMovieClip('mc', getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadInit= function(target_mc:MovieClip) { trace('загрузили!'); //убедились, что флешка загрузилась и проинициализировалась target_mc.link = 'http://flasher.ru/'; //_root убрать! trace(target_mc.link); // должно вывести http://flasher.ru/ }; var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.addListener(mclListener); mcLoader.loadClip('my.swf', mc); //кавычки! _root использовать нельзя, _root теперь, после загрузки ссылается на _root основной флешки, то есть внутри запись должна быть не а просто , если трейсим / используем на основном таймлайне загруженной флешки. (Либо использовать свойство _lockroot, читаем хелп) Но вообще _root использовать надо с осторожностью и мало.
__________________
Идите первым! Последний раз редактировалось mooncar; 16.09.2010 в 18:56. |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 30
|
Я наконец-то разобрался, дело в том, что подгружаемая флэшка лежала не в том же домене, поэтому параметры и не передаются, а вот как это обойти я не знаю. Если все лежит в одном месте, то все успешно передается и работает.
Добавлено через 12 минут Вообщем для общей картины задача такая: Есть флэшка на домене A, в нее должна подгрузится флэшка с домена B и в нее передается параметр из флэшки с домена A. В свою очередь подгружаемая флэшка тянет в себя еще одну, но уже с того же домена, где лежит сама(т.е. на домене B) и тоже должна передать ей определенные параметры. Вот если кто-то скажет как это можно реализовать, низкий поклон. Причем повторюсь, что самая последняя флэшка недоступна для правки и в ней параметр определяется как |
|
|||||
|
Модрон-ветеринар
|
Начну со второго.
Если у вас нет доступа к загружаемой, тогда в onLoadInit запишите Первое решается только через кроссдоменник (файл crossdomain.xml), который должен лежать в корне сайта, откуда вы грузите банер , с содержимым вида <?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="*" /> </cross-domain-policy> Это системные политики, определяемые Адобом и ничего тут не попишешь. Если сервер, откуда вы загружаете банер, а точнее, админы, действительно "в курсе", что его контент грузится в другие места, то такой файл там обязан лежать. Причем не обязательно в allow-access-from domain будет звездочка, это для ленивых админов и для действительно широкой банерной сети. А так там должно стоять имя вашего домена.
__________________
Идите первым! |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|