2011-08-02 4 views
0

L'autre jour, j'ai posté sur un problème Flash/Javascript que j'avais. S'il vous plaît voir ceci: Issues with javascript properly loading and seeing everything Je sais comment je veux le réparer, mais je ne suis d'aucune façon familier avec actionscript. J'ai évité les produits Adobe comme la peste de quand je me développais, car cela coûte une fortune d'acheter et de leurs produits, mais les gros employeurs adorent et paient pour ça alors je suis là. Notre gars "Flash" vient de quitter l'équipe et j'ai hérité de ce problème. Si vous lisez mon autre article, vous savez ce qui se passe, alors je vais passer à autre chose. Je veux faire un simple appel d'actionscript à mon javascript qui est référencé dans mon autre post. Je veux spécifiquement appeler la fonction CheckboxCollection depuis l'intérieur d'actionscript. Je n'ai pas besoin de lui passer des args ou quoi que ce soit de l'intérieur de ActionScript. Tout ce que j'ai besoin de faire est d'exécuter cette fonction une fois le chargement du flash terminé. La fonction javascript prendra soin de tout ce dont j'ai besoin, je dois juste l'avoir appelé ActionScript pour que tout fonctionne en harmonie. Je suis en train de m'instruire tout ce qui concerne adobe et actionscript (à mon grand désarroi), mais je n'ai aucune idée de la direction que prendra le sommet pour faire ce travail. J'ai examiné la documentation d'Adobe, mais jusqu'à ce que je comprenne mieux la langue dans son ensemble, je suis toujours perdu. J'ai copié la plupart de mes actionscript sur ici, mais j'ai omis tout ce qui a dû faire face aux événements mouseover, puisque mon problème ne concerne pas un passage de souris et ils fonctionnent tous comme un charme. Merci d'avance! ------------------------------------------------- ------------------------------------------ MISE À JOUR: j'ai dû arrêter de travailler ceci pour faire d'autres choses, mais je suis de retour à la première étape. Peu importe ce que je fais, je n'ai pas de chance de faire ce travail. J'ai essayé toutes les suggestions ici, et j'ai essayé tout ce que JE SAIS faire, mais je n'ai pas de chance. Si quelqu'un pouvait jeter un oeil à ce post et celui que je lierais à (Il est le javascript compagnon pour cela) et voir si ils peuvent trouver quelque chose. J'ai essayé tellement d'itérations différentes de mon code qu'il est inutile de mettre tous mes essais en place par exemple de ce qui ne marche pas, merci tout le monde!ExternalInterface et Javascript ne fonctionnant pas en harmonie

/* 
JavaScript External Calls 
*/ 
function RegisterExternalCalls():void 
{ 
if(ExternalInterface.available) 
    ExternalInterface.addCallback("HighlightWheel", HighlightWheel); 
} 
function HighlightWheel($args:String,$show:String,...arguments):void 
{ 
$args = $args == "financial"?"center":$args; 
var _obj:Object = ObjectCollection[$args].Objects.Click; 


if(ObjectCollection[$args].Objects.currentObject.name.toLowerCase() == "center") 
{ 
    bcenter = true; 
    _obj = ObjectCollection[$args].Objects.currentObject.getChildByName("financialBtn"); 
} 

if(CBool($show)) 
{ 

    if(arguments.length > 0 && arguments[0] == "TITLE") // || $args == "center") 
     _obj.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OVER)); 
    else 
    { 

     if(ObjectCollection[$args].labels.Label.toUpperCase() === "CENTER") 
     { 
      ObjectCollection["income"].Objects.Click.gotoAndPlay(2); 
      ObjectCollection["property"].Objects.Click.gotoAndPlay(2); 
      ObjectCollection["education"].Objects.Click.gotoAndPlay(2); 
      ObjectCollection["health"].Objects.Click.gotoAndPlay(2); 
      ObjectCollection["retirement"].Objects.Click.gotoAndPlay(2); 

     } 
     else 
     {    
      _obj.gotoAndPlay(2); 

     } 
    } 


} 
else 
{ 
    if(arguments.length > 0 && arguments[0] == "TITLE") 
     _obj.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OUT)); 
    else 
    { 
     if(ObjectCollection[$args].labels.Label.toUpperCase() === "CENTER") 
     { 
      ObjectCollection["income"].Objects.Click.gotoAndPlay(11); 
      ObjectCollection["property"].Objects.Click.gotoAndPlay(11); 
      ObjectCollection["education"].Objects.Click.gotoAndPlay(11); 
      ObjectCollection["health"].Objects.Click.gotoAndPlay(11); 
      ObjectCollection["retirement"].Objects.Click.gotoAndPlay(11); 


     } 
     else 
     { 
      _obj.gotoAndPlay(11); 

     } 
    } 
} 
} 

function CallExternalFunction($label:String,$show:Boolean = true):void 
{ 
var lbl:String = $label.toLowerCase().indexOf("btn") > -1?"financialTitle":$label  + "Title"; 

    if(ExternalInterface.available) 
     ExternalInterface.call("COUNTRY.Financial.highlightProductGroup",lbl,$show); 


} 

function CBool($value:String):Boolean 
{ 
if($value == "true") 
    return true; 
else 
    return false; 
} 

function PrintSetup($evt:MouseEvent):void 
{ 
var pjob:PrintJob = new PrintJob(); 
if(pjob.start()) 
{  
    pjob.addPage(wheel); 

    pjob.send(); 
} 

} 

Répondre

1

Je crois que vous faites cela à travers ExternalInterface.call et passer la fonction javascript qui devrait être appelé, comme ceci:

ExternalInterface.call("CheckboxCollection") 

Si vous avez besoin de passer des arguments:

ExternalInterface.call("CheckboxCollection", value1, value2) 

Pour plus d'informations here is the documentation

0

Si dans votre JS vous n'avez pas nécessairement besoin ceci:

var CheckboxCollection = function() 

essayer de le changer à ceci:

function CheckboxCollection() 

même si elle semble (si le JS est toujours le même), vous avez quoi que ce soit imbriqué. Peut-être vous pouvez appeler aussi cette façon (mais je jamais rien essayé similaire):

ExternalInterface.call("SOME.PLACE.QuoteRequest.CheckboxCollection");

Questions connexes