2010-09-16 7 views
1

J'ai une situation où un visiteur arrive sur une page php avec une clé ID. Ils naviguent ensuite vers la page 2 où l'ID de clé est transporté dans une variable de chaîne de requête.Flash AS3, Rediriger après la lecture d'un film - avec une chaîne querysée par php

à savoir http://www.mysite.com?x=abcde12345

Page 2 a une vidéo flash sur elle - qui joue un film. Une fois le film arrêté, je veux que Flash redirige vers la page 3 - en amenant la chaîne de requête avec elle, car la page 3 doit utiliser la chaîne de requête pour rechercher une valeur de base de données.

J'avais l'habitude d'avoir ce travail très bien dans l'ancien flash avec GetURL - mais en ai besoin dans AS3 maintenant. J'ai cherché pendant un certain temps dessus - et je peux voir comment rediriger avec une chaîne de requête - mais je ne vois pas comment rediriger avec une chaîne de requête dynamique - et je suis assez perdu quand il s'agit de flash.

Des idées?

Merci.

Mise à jour: Je ne sais pas où je me trompe ici.

Voici mon code 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> 

Et mon code 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)); 
} 

Les boucles vidéo juste et rejoue sur lui-même. Ce que j'ai c'est la couche 1 a le film, jusqu'à l'image 2993. J'ai créé Layer2, et sur la couche 2 - l'image 2993 j'ai inséré une image clé - et mis le script as3 ci-dessus.

Pouvez-vous voir où je vais mal?

Merci.

+0

Merci les gens, je me suis appelé loin vers un autre site, mais nous espérons pouvoir demain – Chasester

Répondre

4
 
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)); 
} 

+0

pouvez-vous essayer voir la mise à jour ci-dessus pour voir ce que je fais mal? – Chasester

+0

vous n'avez pas besoin d'ajouter flashvars dans votre code d'intégration, la variable est lu à partir de l'URL – PatrickS

+0

bien je l'ai eu! A dû enlever la partie au sujet de la fonction onComplete et appelez simplement le navigatetourl à partir de là. et il fonctionne. Y a-t-il un avantage à l'avoir là-bas par rapport à l'image après la fin du film? Merci beaucoup! – Chasester

0

Je voudrais ajouter la clé ID en utilisant php à la propriété Flashvars puis utiliser

LoaderInfo(this.root.loaderInfo)
pour l'extraire dans Flash, puis ajouter la clé à la chaîne de redirection.

Regardez également la classe ExternalInterface.

1

Vous avez deux options:

1. Chargement de l'ID dans votre flash à l'aide flashvars.

Voici une Tut sur ce http://www.permadi.com/tutorial/flashVars/index.html alors var nextURL: URLRequest = new URLRequest ("http://www.domain.com/page3.php?id=" + id); navigateToURL (nexturl, "_ self");

ou

2.Appel d'une fonction Javascript à l'intérieur flash

juste faire une petite fonction de redirection en HTML

fonction

nextPage() { }

et à l'intérieur de flash

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