簡體   English   中英

從javascript / jquery調用AS函數

[英]call AS function from javascript/jquery

使用jquery,JS我們可以在flex代碼中調用一個函數。下面是我有一個調用AS代碼的按鈕。

 <script>
   function callas()
   {
    addBody();//call flex function        
   }
 </script>

 <input type="button" onclick="callas();" />

FLEX代碼

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">


<mx:Script>
<![CDATA[

import mx.controls.Button;
import mx.controls.Alert;
import flash.display.InteractiveObject;
import flash.display.Sprite;
import flash.media.*;
import flash.net.*;


public function addBody():void
{

  Alert.show("Got input from JS");

}
</mx:Script>


</mx:Application >

應該是這樣的:

Java腳本

function getFlashMovie(movieName) {
    document.getElementById(movieName).setAttribute("name", movieName);
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}

function callas()
{
   // You need to know the ID of the object/embed tag; swfobject has an attribute for that. see http://code.google.com/p/swfobject/wiki/documentation#How_can_you_configure_your_Flash_content?
   var swfobjectID = 'myFlashObjectID'  
   //call flex function 
   getFlashMovie(swfobjectID).addBody();
}

動作/ Flex

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>
<![CDATA[

import mx.controls.Button;
import mx.controls.Alert;
import flash.display.InteractiveObject;
import flash.display.Sprite;
import flash.media.*;
import flash.net.*;
import flash.external.ExternalInterface;

//                "javascript function", flash function
ExternalInterface.addCallback("addBody", addBody);

public function addBody():void
{
  Alert.show("Got input from JS");
}
</mx:Script>

</mx:Application >

資料來源:
http://kb2.adobe.com/cps/156/tn_15683.html
http://code.google.com/p/swfobject/wiki/documentation#How_can_you_configure_your_Flash_content嗎?

您需要利用一個名為ExternalInterface的Actionscript類與Java交互。

因此,如果您想從Flex或Flash調用Javascript函數,則應該使用如下代碼:

ExternalInterface.call("Javscriptfunction", parameters);

如果要從Java腳本調用Actionscript,請嘗試以下操作:

ExternalInterface.addCallback("javascriptfunc", flexfunc);

protected function flexfunc(result:String):void{
    trace(result);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM