PDA

Просмотр полной версии : В адресе пропадает значок "#", при переходе из флешролика


Bорон
24.06.2006, 19:12
Доброго времени суток.

Есть флеш меню.
url ссылок передаются в методом GET


index.swf?
link_0_1=services/marketing_events.html#linkus_one
&link_0_2=services/contacts.html#linkus_two
&link_0_3=services/gallery.html#linkus_tree


Флеш получает адреса нормально.



_global.link_0_1 = link_0_1;
_global.link_0_2 = link_0_2;
_global.link_0_3 = link_0_3;

_root.scene.planet_0.main.button_0_1.onRelease = function() {
getURL(_global.link_0_1);
}
_root.scene.planet_0.main.button_0_2.onRelease = function() {
getURL(_global.link_0_2);
}
_root.scene.planet_0.main.button_0_3.onRelease = function() {
getURL(_global.link_0_3);
}


Но получается более чем странная ситуация.
При нажатии на ссылки переход происходит на страницы


services/marketing_events.html
services/contacts.html
services/gallery.html


соответственно.

Это болезнь рук, головы, ПА или что это вообще может значить ?
Куда деваются метки ?
Помогите пожалуста разобратся.

С уважением. Ворон.

etc
24.06.2006, 21:00
Их не передает флешу сам браузер, когда ты прописываешь такой путь для флешки, то решетка не считается параметром. Используй flashvars

Bорон
24.06.2006, 22:09
1.
Спасибо за ответ.
Пошел искать информацию о том что такое flashvars.
Что то подобное я вроде бы встречал в описании SWFObject...
Я вообще в ту сторону "смотрю" ?

2.
Их не передает флешу сам браузер
Создал текстовое поле с именем переменной test
вставил код:

_global.link_1_1 = link_1_1;
_root.test=_global.link_1_1;

Запустил ролик и увидел в текстовом поле:

services/brand_events.html#brand_dors

Переменная содержит валидную информацию.
Или я что то не так понял ?
Прокоментируйте пожалуста.
Что это может значить ?
Я что то совсем запутался...

С уважением. Ворон.

Bорон
24.06.2006, 22:30
Почитал про flashvars.
Кроме того почитал про SWFObject.

Сваял такой код:

<script type="text/javascript" src="script/swfobject.js"></script>
<div id="flashcontent">
Этот текст будет заменен флэшкой.
</div>
<script type="text/javascript">
var so = new SWFObject("flash/index.swf", "index", "980", "550", "8", "#000000");
so.addVariable("link_0_1","services/marketing_events.html");
so.addVariable("link_0_2","services/contacts.html");
so.addVariable("link_0_3","services/gallery.html");
so.addVariable("link_1_1","services/brand_events.html#brand_dors");
so.addVariable("link_1_2","services/brand_events.html#brand_fes");
so.addVariable("link_1_3","services/brand_events.html#brand_open");
so.addVariable("link_1_4","services/brand_events.html#brand_milion");
...
so.write("flashcontent");
</script>


Флешка включается нормально и переменные передаются.
А вот метка отсутствкует как и раньше...
В чем может быть поблема (кроме моих рук и ДНК) ?

Bорон
27.06.2006, 10:38
Что, неужели никто ничего не подскажет ?
Или эта проблема наблюдается только у меня ?
У остального населения всея земли метки передаются нормально ?

Cvazimodo
27.06.2006, 11:45
попробуйте переводить вашу строку (параметр) в строку, где нет спецсимволов (в ПХП функции urlencode, кажется). А во флеше переводите обратно функцией unescape()

etc
27.06.2006, 13:14
Cvazimodo, unescape автоматически происходит.

Ворон, попробуй заменить решётку на %23

Bорон
28.06.2006, 19:32
Да, спасибо, помогло. :)
И все же не могу понять чем это вызвано :(

function reparse_char(obj){
for(current in obj){
if(obj[current].indexOf("#")!=-1){
var lp = obj[current].split("#");
obj[current] = lp[0]+"%23"+lp[1];
}
}
}

_global.link_1_1 = link_1_1;
_global.link_1_2 = link_1_2;
...
_global.link_1_7 = link_1_7;

reparse_char(_global);

Еще раз спасибо за ответ.
С уважением. Ворон.