|
|
|
| Добрый день! Проблема такая. Надо на сайте сделать меню на flash. Все url-ы для меню прописана в файле links.txt такого, примерно содержания.
link11=http://www.11.ru
&link12=http://www.12.ru
&link13=http://www.13.ru
&link14=http://www.14.ru
&link21=http://www.21.ru
&link22=http://www.22.ru
|
Но вот проблемка, флэшка не находит файл с урл-ами.. т.е. как я понял она ищет этот файл в том месте, где открывается, а т.к. на сайте стоит ModRewrite и все каталоги виртуальные, файла она там естественно не находит.. Например когда клады файл в корневой каталог, то со страницы http://www.site.ru/ все отлично работает, но стоит зайти на http://www.site.ru/about/, как все url меняются undefined флэшка вставлена т.о.
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="570" height="205" id="menu04gradT" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="<? echo $path['swf'] ?>/menu-mod06.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#99cc00" /><embed src="<? echo $path['swf'] ?>/menu-mod06.swf" quality="high" wmode="transparent" bgcolor="#99cc00" width="570" height="205" name="menu04gradT" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
<script type="text/javascript" src="<? echo $path['swf'] ?>/g.js"></script>
|
Где g.js
theObjects = document.getElementsByTagName("object");
for (var i = 0; i < theObjects.length; i++) {
theObjects[i].outerHTML = theObjects[i].outerHTML;
}
|
| |
|
|
|
|
|
|
|
для: Che
(24.04.2007 в 09:36)
| | а что мешает вам оставить txt в корне?
LoadVars.load();
Параметры
url Строка; URL, с которого необходимо
загрузить данные. Если SWF файл,
производящий загрузку, запущен вб раузере,
url должен указывать на тот же домен, что и
SWF file; смотри раздел Описание для более
подробной информации.
var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean) {
if (success) {
trace(this.toString());
} else {
trace("Ошибка в загрузке / разборе результирующей строки.");
}
};
my_lv.load("http://www.flash-mx.com/mm/params.txt");
|
http://livedocs.adobe.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00001414.html | |
|
|
|
|
|
|
|
для: AlexSol
(24.04.2007 в 10:16)
| | Прописал функцию в head, прописал в ней путь к txt файлу.. не работает.. может я как-то не так все сделал? Я так понимаю, что в самом swf файле прописан относительный путь к файлу links.txt А тут мы добавляем еще переменные, будет ли их воспринимать флэшка?
Просто я абсолютно не разбираюсь во флэше.. поэтому мне тяжело все это победить.. | |
|
|
|
|
|
|
|
для: Che
(24.04.2007 в 10:43)
| | если не разбираетесь то не надо было праться. эта функция прописывается во flash , поскольку именно flash инициирует загрузку переменных. | |
|
|
|
|
|
|
|
для: AlexSol
(24.04.2007 в 10:46)
| | Флэшку делал не я, моя задача всавить эту самую флэшку в страницы и подключить к cms..
Т.е. надо править флэшку? | |
|
|
|
|
|
|
|
для: Che
(24.04.2007 в 10:52)
| | по-моему это первое умозаключение - если flash не видет переменных по относительному пути, значит надо указывать абсолютный. | |
|
|
|
|
|
|
|
для: AlexSol
(24.04.2007 в 10:53)
| | Спасибо за консультацию. А можно ли через сам html документ передать флэшке переменные? | |
|
|
|
|
|
|
|
|
для: AlexSol
(24.04.2007 в 12:03)
| | Сделал так, все отлично работает..
Но не работает в MyIE2 и Maxthon..
Пробовал через JS передавать переменные.. не помогло..
Вместо ссылок пишет null..
Сайт скоро сдавать, а у заказчика оказался MyIE2 :) Помогите плиз.. | |
|
|
|
|
|
|
|
для: Che
(28.04.2007 в 11:37)
| | каким способом переменные получаете? | |
|
|
|
|
|
|
|
для: AlexSol
(28.04.2007 в 11:54)
| | в самой флэшке? или на странице?
На странице из базы беру..
Во флэшке если через JS, то
_root.now_active = String(ExternalInterface.call("topMenu"));
_root.link1=String(ExternalInterface.call("topMenu1"));
_root.link2=String(ExternalInterface.call("topMenu2"));
_root.link3=String(ExternalInterface.call("topMenu3"));
_root.link4=String(ExternalInterface.call("topMenu4"));
|
и т.д.
Если через FlashVars, то это все комментирую.. | |
|
|
|
|
|
|
|
для: AlexSol
(28.04.2007 в 11:54)
| | Вот еще перед предыдушим кодом
import flash.external.*;
import mx.utils.Delegate;
|
| |
|
|
|
|
|
|
|
для: Che
(28.04.2007 в 12:07)
| | вы выбрали самый кривой способ :(
что мешает вам загрузить переменные с определенного адреса через LoadVars.load()? | |
|
|
|
|
|
|
|
для: AlexSol
(28.04.2007 в 12:18)
| | Определенного адреса не будет.. я ведь не знаю какое доменное имя себе сделает клиент..
Я ведь правильно понимаю, надо прописать полную ссылку на файл с переменными.. | |
|
|
|
|
|
|
|
для: Che
(28.04.2007 в 12:24)
| | лучше полную. алрес всегда уточнить можно или держать переменные на своем хосте. | |
|
|
|
|
|
|
|
для: AlexSol
(28.04.2007 в 12:38)
| | дело в том что ссылки автоматически генерятся на том же хосте, поэтому вариант держать файл на своем хосте неприемлим..
т.е. передавая ссылки через тело документа нельзя добиться адекватного восприятия их разнвми браузерами? | |
|
|
|
|
|
|
|
для: Che
(28.04.2007 в 12:56)
| | не знаю, такой зачачи не было а что flashvars мешает использовать? чтобы при загрузке ролика переменные сразу были в нем? | |
|
|
|
|
|
|
|
для: AlexSol
(28.04.2007 в 12:59)
| | Это все к cms подцеплено, где имена каталогов, соответственно и ссылки можно менять.. поэтому если их клиент в cms поменяет, меню работать не будет.. | |
|
|
|
|
|
|
|
для: Che
(28.04.2007 в 13:49)
| | если вы не можете заменить
function topMenu1() { return "http://akona.ru/modul-e/about/"; }
| на
<param flashvars="menu1_p1=http://akona.ru/modul-e/about/">
|
то больше помочь нечем. | |
|
|
|
|
|
|
|
для: AlexSol
(28.04.2007 в 14:02)
| | Я менял.. но в MyIE2 всеравно не работает.. | |
|
|
|
|
|
|
|
для: Che
(28.04.2007 в 14:14)
| | что такое myIE2 без понятия. в ie и ему подобных передается через param, в остальных -embed
<param flashvars="menu1_p1=http://akona.ru/modul-e/about/">
во влешке в первом кадре
var menu1_p1=this.menu1_p1 | |
|
|
|
|
|
|
|
для: AlexSol
(28.04.2007 в 14:19)
| | Я это все понимаю и в IE и в Opera и везде кроме MyIE2 работает.. вот сайт этого браузера - http://www.maxthon.com/ он на движке IE.. Я не понимаю почему.. я скачивал разные версии и т.д. но он не видит переменные...
Прекрасно понимаю что это бред, так маяться из-за браузера которым почти никто не пользуется.. но мне очень повезло и у заказчика стоит именно он! Начальство от меня требует, чтобы в этом браузере все работало, я уже все перепробовал... | |
|
|
|
|
|
|
|
для: Che
(28.04.2007 в 14:27)
| | я использую maxthon. с flashvars никогда проблем не было. | |
|
|
|