2010-01-30 2 views
1

Besoin de cliquer par programme sur un bouton html d'un événement de connexion (code derrière? Le bouton html envoie des variables à Flash en utilisant la méthode: pas de réponse - sans publication et utilise l'API ExternalInterface En passant de SWF> ASPX est génial, mais doit envoyer User.Identity à SWF depuis ASPX via javascript après s'authentifier avec un événement de connexion qui a du mal à se mettre au travail ... (appel de l'événement HTML depuis Login bouton) essayé scripting en javascript pour se connecter événement sans chance, peut-être parce que la publication supprime les variables SWF - donc peut-être garder séparé (login puis html send) fonctionnerait ...calll html bouton onclick événement depuis le serveur ASP côté connexion authentifier l'événement

Voici mon code correspondant:

function sendToActionScript(value) { 
    swfobject.getObjectById("Property").sendToActionScript(value); 
} 

    </script> 

<object ..// SWF File embedded> </object 

<form id="form1" runat="server"> 
<asp:Login id="login1" OnAuthenticate="login1_Authenticate"/> 
</form> 

<form id="form" onsubmit="return false;"> 
<input type="text" name="input" id="input" value="" runat="server" /> 
<button id="btnInput" 
     runat="server" 
     causesvalidation="false" 
     visible="true" 
     style="width: 51px" 
     onclick="sendToActionScript(this.form.input.value);" >Send</button><br /> 
</form> 


// CODE BEHIND 

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) 
{ 
    // do something to get User Id and Role 
    //bind the string (user or role) to input.value 
    //then call the HTML button onclick event to send it to SWF file. 
    //which I could put in separate function and call from Login_Authenticate 
} 

quelqu'un peut me aider je suis d'idées.

Craig

Répondre

0

Dans votre gestionnaire de Authentifier vous devez injecter un peu de javascript sur la page qui appelle simplement la fonction sendToActionScript avec la valeur appropriée. Vous pourriez, je suppose, cliquer sur le bouton, mais pourquoi introduire le surcoût supplémentaire quand vous pouvez simplement appeler la méthode directement.

this.ClientScript.RegisterStartupScript(this.GetType(), "sendtoactionscript", 
     "<script type='text/javascript'>" 
      + "sendToActionScript(this.form.input.value);" 
      + "</script>"); 

Notez que je l'ai divisé en chaînes séparées uniquement à des fins de mise en forme. OnClick est une déclaration côté serveur du gestionnaire d'événements. OnClick

+0

Le problème que j'ai est que le postback qui se produit réinitialise l'API java pour ExternalInterface et efface l'état où je peux avoir besoin de modifier le Flash/SWF pour conserver la valeur précédente. .. avez-vous un moyen d'appeler le bouton HTML sans publication? – CraigJSte

+0

Je vais essayer de maintenir l'état en flash lorsque la page s'initialise et utiliser le code ci-dessus .. merci – CraigJSte

+0

En fait, je pense que l'API Interface externe pour Javascript et Flex est idéale pour Flex> Javascript mais le .callback() et Les fonctions JSReady sont trop compliquées pour Java/ASP> Flex aussi et plus important, elles ne fonctionnent pas bien avec les Postbacks nécessaires en ASP pour l'authentification de RoleID ... donc j'utilise Flashvars avec le SWFObject, c'est beaucoup plus simple ... et ça marche avec la publication. – CraigJSte

0

Utilisez onClientClick ou btnInput.Attributes.Add ("onclick", "sendToActionScript (this.form.input.value);");

0

Je fini par utiliser SWFObject flashvars

Questions connexes