Flex3ÓëÒ³ÃæJavaScriptµÄÏ໥µ÷ÓÃ
ÈÕǰ×öÏîÄ¿£¬ÐèÒª°ÑÒ³ÃæµÄJS´úÂë³é³öÀ´·Åµ½Ò»¸ö.jsÎļþÖУ¬ÓÉÓÚflex³ÌÐòÊÇÒÔdiv+SWFObjectµÄ·½Ê½Ç¶Èëµ½Ò³ÃæµÄ£¬ÎªÁ˴ﵽĿ±êÍøÕ¾Ö»ÐèÒªÒýÓÃÒ»¸ö.jsÎļþ¼´ÊµÏÖÒýÓÃÏîÄ¿¹¤³ÌµÄÄ¿µÄ£¬ËùÒÔÒ²Òª°ÑSWFObjectµÄ´úÂë·Åµ½.jsÎļþÖС£
˼·ÊÇÓÃdocument.write()°ÑÒýÓÃswfÎļþµÄ´úÂëд½øÒ³Ã棬Ȼºó°ÑflexÒªµ÷ÓõÄjsº¯Êý¶¼·Åµ½.jsÎļþÖÐ
ºÜ¿ì£¬¾ÍÇ¨ÒÆÍê±ÏÁË¡£²âÊÔing...
Ïë²»µ½µÄÊÇ£¬flexÖÐÓÃExternalInterface.call("methodName",params);µ÷JSº¯ÊýȱûÓзµ»ØÖµ£¬ÓÃalert("a")µ¯³öһϣ¬¹ûȻûÓе÷Óõ½¡£ÕâÊÇÎªÊ²Ã´ÄØ£¿ÄѵÀ°ÑSWFÓÃdocument.writeµÄ·½Ê½¼ÓÈëµ½Ò³ÃæºóȨÏÞ½µµÍÁË£¿
·Å¹·ÕÒÁËһϣ¬Ëƺõ´ó¼ÒµÄµ÷Óö¼ºÜÕý³£……°¦……ÈËÉú×îÍ´¿àµÄÊÂÇéιýÓÚ´ËÁË¡£
ͻȻÏëµ½infoqµÄһЩÁ¬½ÓÏÔʾµÄÊÇÀàËÆjavascript:void(0)µÄ×ÖÑù£¬ÓÚÊǺõ£¬ÎÒÏëµ½ÁËÓÃflexµÄURLRequestµ÷ÓÃÒ³ÃæµÄJS¡£
Á¢¿Ì³¢ÊÔ
flexÖУº
var req:URLRequest = new URLRequest("javascript:test('hello')");
navigateToURL(req,"_self");
ÔÚJSÖУº
function test(str){
alert("ÄãºÃ" + str);
return "world";
}
ä¯ÀÀÆ÷µ¯³ö¶Ô»°¿ò£¬ÀïÃæµÄÎÄ×ÖÏÔʾҲÕý³£¡£
Õâ˵Ã÷ÓÃURLRequestµ÷ÓÃÊÇûÎÊÌâµÄ¡£
µ«ÊÇ……ä¯ÀÀÆ÷È´Ìø×ªÁË£¬Ò³ÃæÏÔʾworld¡£
ºÜÃ÷ÏÔ£¬²»¿ÉÒÔµ¥´¿µØÕâôµ÷¡£
Ôõô°ìÄØ£¿·ÁËÒ»ÏÂflexµÄÎĵµ£¬ÔÀ´ExternalInterfaceÓиöaddCallBackµÄ·½·¨£¬Ê¹ÓÃËü¿ÉÒÔ½¨Ò»¸öJSµÄ»Øµ÷º¯Êý
ʹÓ÷½·¨ÈçÏ£º
ExternalInterface.addCallBack("returnValue",returnValue);//µÚÒ»¸ö²ÎÊýÊÇ¿ª·Å¸øJSµÄº¯ÊýÃû£¬µÚ¶þ¸ö²ÎÊýÊǶÔÓ¦µÄAS·½·¨¡£
flexÖУº
public function invokeJavaScript(details:String):void{
var JavaScriptRequest:URLRequest = new URLRequest("javascript:" + details);
navigateToURL(JavaScriptRequest,"_self");
}
public function returnValue(value:String):void{
this.value = value;
}
private function testASJS():void{
invokeJavaScript("test('seal','ÀϺú')");
}
jsÖУº
function thisMovie(flexName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[flexName];
} else {
return document[flexName];
}
}
function sendToActionScript(flexName,value) {
thisMovie(flexName).returnValue(value);
}
function test(flexName,param1){
sendToAction
Ïà¹ØÎĵµ£º
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12">
<mx:Script>
<!--[CDATA[
import mx.controls.Alert;
public var newBuildMenuItem:ContextMenuItem;//²Ëµ¥Ïî±äÁ¿
private ......
ǰÑÔ£º´«Í³ÍøÂç³ÌÐòµÄ¿ª·¢ÊÇ»ùÓÚÒ³ÃæµÄ¡¢·þÎñÆ÷¶ËÊý¾Ý´«µÝµÄģʽ£¬°ÑÍøÂç³ÌÐòµÄ±íÏֲ㽨Á¢ÓÚHTMLÒ³ÃæÖ®ÉÏ£¬¶øHTML
ÊÇÊʺÏÓÚÎı¾µÄ£¬´«Í³µÄ»ùÓÚÒ³ÃæµÄϵͳÒѾ½¥½¥²»ÄÜÂú×ãÍøÂçä¯ÀÀÕߵĸü¸ßµÄ¡¢È«·½Î»µÄÌåÑéÒªÇóÁË¡£¶ø¸»»¥ÁªÍøÓ¦Óã¨Rich
Internet Applications£¬ËõдΪRIA£©µÄ³öÏÖ¾ÍÊÇΪÁ ......
×î½üÔÚ¿´Flex3ȨÍþÖ¸ÄÏ£¬ÀïÃæ¶ÔÒ³Ãæ¼Ü¹¹ºÍRIA¼¼Êõ×ܽáµÄºÜºÃ¡£
Ò». »ùÓÚÒ³Ãæ¼Ü¹¹µÄWebÓ¦ÓÃÁ÷³Ì
1. Óû§´ò¿ªä¯ÀÀÆ÷£¬ÏòWEB·þÎñÆ÷ÇëÇóÒ»¸öÒ³Ãæ¡£
2. WEB·þÎñÆ÷ÊÕµ½ÇëÇó¡£
3. (optional)ÍøÂç·þÎñÆ÷°ÑÇëÇ󽻸øÓ¦Ó÷þÎñÆ÷À´¶¯Ì¬×é×°Ò³Ãæ¡£
&nb ......
===============================
ͼÁé³ÌÐòÉè¼Æ´ÔÊ飨Web¿ª·¢ÏµÁУ©
===============================
The Essential Guide to Flex 2 with ActionScript 3.0
&nb ......