FlashDvelop проблема с публикацией
Я создал простой флэш-объект для перенаправления браузера на другую веб-страницу с помощью "navigatetoURL", получая при этом URL-адрес от внешних вызовов интерфейса к javascript, который имеет страница, выполняющая вставку файла флэш-памяти.
Я в состоянии собрать все просто отлично, и HTML-страница, которую я создал (используя swfobject.embedSWF для встраивания флэш-файла), работает нормально и перенаправляет браузер. Однако, когда я перемещаю файлы, необходимые для того, чтобы все функционировало (файл.swf, swfobject.js и html-файл, содержащий объект flash), веб-страница больше не перенаправляется. Отображается только пустое пространство, которое выглядит как флэш-объект, и ничего не перенаправляется.
Есть ли какая-либо опция компиляции во Flashdevelop, которую я пропускаю, чтобы не исправить это?
Вот код actioncript 3:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.net.navigateToURL;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.external.ExternalInterface;
public class FlashTest extends Sprite
{
public function FlashTest()
{
var url:String = ExternalInterface.call("GetURL");
var hash:String = ExternalInterface.call("GetHash");
var new_url:String = url + hash;
var request:URLRequest = new URLRequest(new_url);
navigateToURL(request, "_self");
}
}
}
HTML-код:
<html>
<head>
<script src='js/swfobject.js' type='text/javascript'></script>
<script type='text/javascript'>
swfobject.embedSWF('Flashtest.swf', 'altContent', '100%', '100%', '10.0.0');
function GetURL()
{
return 'http://www.cnn.com';
}
function GetHash()
{
return '?hash=2398asb9s8234';
}
</script>
</head>
<body>
<div id='altContent'>
<h1>Flash_test</h1>
<p>Alternative content</p>
<p><a href='http://www.adobe.com/go/getflashplayer'><img
src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif'
alt='Get Adobe Flash player' /></a></p>
</div>
</body>
</html>
2 ответа
На самом деле, у меня были проблемы с запуском SWF до того, как они были добавлены в HTML DOM и / или до того, как DOM был готов. Взгляните на собственную статью Adobes на ExternalInterface.call и javascript isReady. Я также хотел бы взглянуть на параметр allowScriptAccess:
<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");
so.addVariable("allowScriptAccess", "always");
so.write("flashcontent");
</script>
На самом деле это проблема безопасности флеш-плеера. Если вы переместите файлы из папки bin и запустите их локально, они больше не будут работать.
Каждый раз, когда вы создаете проект в flashdevelop, папка "bin" добавляется в список исключений flash player. Если вы переместите файлы в другую папку, они больше не будут работать, поэтому при открытии HTML-кода в браузере появится пустая страница.
Решение состоит в том, чтобы вручную изменить конфигурационный файл безопасности флэш-плеера и добавить новый путь или посетить страницу: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html Нажмите "Глобальные параметры безопасности"> Всегда разрешать> Редактировать ocations > Добавить местоположение> Найдите новый путь, где находятся файлы.