![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2007
Сообщений: 3
|
Прошу вашей помощи, о великие специалисты...
Каким образом необходимо делать динамическое меню, чтобы при нажатии на кнопку производился одновременный переход на URL и фиксировалось на открывшейся странице меню с видоизмененной кнопкой раздела (в общем, типа закладки на раздел). Единственное, что пока пришло в голову, так это переход между сценами в зависимости от нажатой кнопки, на каждой сцене меню с заложенной одной "нужной" кнопкой. Но как можно совместить getUrl и gotoAndPlay? Ведь сайт-то только с элементами флеш-анимки, а не полностью флешевый... Быть может вы предложете более рациональное решение... |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
Сделать это можно при помощи PHP. Передать во Флеш переменную в зависимости от того какой URL загрузился, а потом если допустим переменная var = 1, то соответствующий клип переходит на соответствующий кадр.
toСевер чет по той ссылке непонятно нифига... |
|
|||||
|
Регистрация: Jul 2007
Сообщений: 3
|
Только как одновременно флешка сможет менять кадр и открывать новую страницу? Ведь на новой странице подгружается та же менюшка и все начинается сначала...
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
Правильно заново, только значение переменной на другом URL будет другое
короче чтоб дальше не рассуждать: <?
//Спрашиваем какой URL сейчас в адресной строке
$url = getenv("REQUEST_URI");
//Если после URL присутствуют знаки вопроса (т.е. PHP'шные переменные)
if (substr_count($url,'?') > 0) {
//удаляем все что после знака вопроса, оставляем только URL и записываем его в переменную $new_url
list($new_url,$null) = explode('?',$url);
//присваиваем переменной $url значение $new_url (фиг знает зачем, для удобства)
$url = $new_url;
}
//дальше вроде и так понятно...
if (($url == "/index.php") || ($url == "/")) {
$value = 1;
} else if ($url == "/1page.php") {
$value = 2;
} else if ($url == "/2page.php") {
$value = 3;
} else if ($url == "/3page.php") {
$value = 4;
} else if ($url == "/4page.php") {
$value = 5;
}
?>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="990" height="57" id="menu" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="menu.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<!-- тут переменная передается во Flash -->
<param name="flashvars" value="_var1=<?=$value;?>">
<!-- тут переменная передается во Flash -->
<!-- и тут тоже вписываем -->
<embed src="menu.swf" flashvars="_var1=<?=$value;?>" quality="high" bgcolor="#ffffff" width="990" height="57" name="menu" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
и в ActionScript'е пишем
if (_var1 == 1) {
button1.gotoAndStop(5);
} else if (_var1 == 2) {
button2.gotoAndStop(5);
} else if (_var1 == 3) {
button3.gotoAndStop(5);
} else if (_var1 == 4) {
button4.gotoAndStop(5);
} else if (_var1 == 5) {
button5.gotoAndStop(5);
}
|
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Из flashvars получаем только строки. Т.е. не получим не 1, а "1".
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
ну уж не знаю, что там из flashvars получается, но приведенный выше код работает
|
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Цитата:
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 118
|
хм, будем знать, а как можно сменить тип переменной?
new_var = int(var1); ? |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
в AS1/AS2:
//считать числом num = Number(str); //"выдрать" число из строки num = parseInt(str); num = parseFloat(str); Или сразу передавать имя кнопки. Последний раз редактировалось Kikasso; 04.07.2007 в 17:40. |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|