2010-10-18 32 views
0

J'ai créé un objet flash simple pour rediriger un navigateur vers une page Web différente en utilisant "navigatetoURL" tout en obtenant l'URL des appels d'interface externes au javascript que la page faisant l'incorporation du fichier flash a.Flashdevelop problème avec la publication

Je suis capable de tout construire très bien et la page html que j'ai créée (en utilisant swfobject.embedSWF pour intégrer le fichier flash) fonctionne bien et redirige le navigateur. Cependant, lorsque je déplace les fichiers nécessaires pour que tout fonctionne (le fichier .swf, swfobject.js et le fichier html qui incorpore l'objet flash), la page Web ne redirige plus. Juste un espace vide, qui semble être l'objet flash, est affiché et rien n'est redirigé.

Existe-t-il une option de compilation dans Flashdevelop qui me manque pour éviter cela?

Voici le actionscript 3 code:

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"); 

} 
} 
} 

Le code 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> 
+0

Je l'ai réduit un peu. Un simple fichier swf de type world hello fonctionne très bien lorsque les répertoires sont modifiés. Il semble que cela a à voir avec mon swf particulier. –

Répondre

0

En fait, je l'ai été en difficulté avec swf en cours de démarrage avant d'être ajoutés au code HTML DOM et/ou avant que le DOM soit prêt. Jetez un oeil à Adobes own article on ExternalInterface.call and javascript isReady. Je voudrais aussi jeter un oeil au paramètre allowScriptAccess:

<script type="text/javascript"> 
    var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699"); 
    so.addVariable("allowScriptAccess", "always"); 
    so.write("flashcontent"); 
</script> 
0

Il est en fait un problème de sécurité du lecteur flash. Si vous supprimez les fichiers du dossier bin et les exécutez localement, ils ne fonctionneront plus.

Chaque fois que vous créez un projet dans flashdevelop, le dossier "bin" est ajouté à la liste d'exceptions du lecteur flash. Si vous déplacez les fichiers dans un autre dossier, ils ne fonctionneront plus, d'où la page blanche lors de l'ouverture du fichier html dans le navigateur.

La solution consiste à modifier manuellement le fichier de configuration de sécurité du lecteur flash et ajoutez le nouveau chemin ou à visiter: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html Cliquez sur Paramètres globaux de sécurité> Toujours autoriser> Modifier ocations> Ajouter un emplacement> Recherchez le nouveau chemin, où les fichiers sont situés.