Flash AS3, перенаправление после воспроизведения фильма - с помощью строки запроса, управляемой php - PullRequest
1 голос
/ 16 сентября 2010

Я попал в ситуацию, когда посетитель заходит на страницу php с ключом ID.Затем они переходят на страницу 2, где их идентификатор ключа переносится в переменной строки запроса.

т.е. http://www.mysite.com? X = abcde12345

На странице 2 есть флэш-видео, которое воспроизводит фильм.Как только фильм перестает воспроизводиться, я хочу, чтобы flash перенаправил на страницу 3 - вместе со строкой запроса, поскольку странице 3 необходимо использовать строку запроса для поиска значения базы данных.

Раньше я прекрасно работал встарая прошивка с GetURL - но нужна сейчас в AS3.Я довольно долго искал - и я вижу, как перенаправить с помощью строки запроса, - но не вижу, как перенаправить с помощью динамической строки запроса, - и я довольно растерялся, когда дело доходит до флэш.

Есть идеи?

Спасибо.

Обновление: я не уверен, где я иду не так.

Вот мой HTML-код

<script>
document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'); document.write('codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"');
document.write('WIDTH="550" HEIGHT="400" id="movie" ALIGN="">');
document.write(' <PARAM NAME=movie VALUE="Movie-test.swf">');
document.write(' <PARAM NAME=FlashVars VALUE="x='+toPage+'">');
document.write(' <PARAM NAME=quality VALUE=high>');
document.write(' <PARAM NAME=bgcolor VALUE=#FFFFFF>');

document.write('<EMBED src="Movie-test.swf"');
document.write('    FlashVars="x='+toPage+'"');
document.write('    bgcolor=#99CC33 WIDTH=550 HEIGHT=400 ');
document.write('    TYPE="application/x-shockwave-flash">');
document.write('  </EMBED>');
document.write(' </OBJECT>');
</script>

И мой код AS3

var params:Object = this.loaderInfo.parameters;
var id:String = params.x;

//then after the movie completes

function onComplete(event:Event):void
{
   var page3URL:String = "page2.php?" + "x=" +id;
   navigateToURL( new URLRequest( page3URL ) );
}

Видео просто зацикливается и воспроизводится само по себе.

У меня есть слой 1, в котором есть фильм, вплоть до кадра 2993. Ясоздал Layer2, а на Layer 2 - кадр 2993, я вставил ключевой кадр - и поместил вышеуказанный скрипт as3.

Можете ли вы увидеть, где я иду не так?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 16 сентября 2010
var params:Object = this.loaderInfo.parameters;
var id:String = params.x;

//then after the movie completes

function onComplete(event:VideoEvent):void
{
   var page3URL:String = "http://example.com?" + "x=" +id;
   navigateToURL( new URLRequest( page3URL ) );
}

1 голос
/ 16 сентября 2010

У вас есть два варианта:

1. Загрузка идентификатора во флэш-память с помощью flashvars.

Вот тут на этом http://www.permadi.com/tutorial/flashVars/index.html затем var nexturl: URLRequest = новый URLRequest ("http://www.domain.com/page3.php?id="+id); navigateToURL (nexturl, "_ я");

или

2. Вызов функции Javascript изнутри flash

просто сделайте небольшую функцию перенаправления в HTML

function nextPage () { } * * Тысяча двадцать-один

и изнутри вспышка

var temp: Object = ExternalInterface.call ("nextPage");

0 голосов
/ 16 сентября 2010

Я бы добавил ключ ID с помощью php к свойству Flashvars, затем использовал

LoaderInfo(this.root.loaderInfo)
, чтобы извлечь его из Flash, а затем добавил ключ к строке перенаправления.

Также посмотрите на ExternalInterface class.

...