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
Ïà¹ØÎĵµ£º
1.document.formName.item('itemname')µÄÎÊÌâ
˵Ã÷£ºIEÏ¿ÉÒÔʹÓÃdocument.formName.item('itemname')ºÍdocument.formName.elements('elementsName');
FFÏÂÖ»ÄÜʹÓÃdocuement.formName.elements('elementsName');
½â¾ö·½·¨£ºÍ³Ò»Ê¹ÓÃdocuement.formName.elements('elementsName');
2.¼¯ºÏÀà¶ÔÏóÎÊÌâ
˵Ã÷£ºIEÏ¿ÉÒÔʹÓÃ[]ºÍ ......
1. º¯ÊýÔÚÖ´ÐÐÍê return Ö¸Áîºó¾Í»áÍ£Ö¹Ö´ÐдúÂë.
function test(Num1,Num2){
return Num1+Num2;
alert(Num1+Num2); //never outputs
}
2. javascript º¯Êý²»ÄÜÖØÔØ,Ò²¾ÍÊÇ˵¿ÉÒÔÔÚͬһ¸ö×÷ÓÃÓòÖж¨Òå¶à¸öͬÃûº¯Êý,¶ø×îÖÕÖ´ÐеÄÊǺóÒ»¸öº¯Êý.
function test(num){
alert(num+10);
}
function ......
ǰÑÔ£º´«Í³ÍøÂç³ÌÐòµÄ¿ª·¢ÊÇ»ùÓÚÒ³ÃæµÄ¡¢·þÎñÆ÷¶ËÊý¾Ý´«µÝµÄģʽ£¬°ÑÍøÂç³ÌÐòµÄ±íÏֲ㽨Á¢ÓÚHTMLÒ³ÃæÖ®ÉÏ£¬¶øHTML
ÊÇÊʺÏÓÚÎı¾µÄ£¬´«Í³µÄ»ùÓÚÒ³ÃæµÄϵͳÒѾ½¥½¥²»ÄÜÂú×ãÍøÂçä¯ÀÀÕߵĸü¸ßµÄ¡¢È«·½Î»µÄÌåÑéÒªÇóÁË¡£¶ø¸»»¥ÁªÍøÓ¦Óã¨Rich
Internet Applications£¬ËõдΪRIA£©µÄ³öÏÖ¾ÍÊÇΪÁ ......
var request:URLRequest = new URLRequest('lx2.html');
navigateToURL(request,"_top");
"_top" ÀàËÆÓÚhtmlÖеÄtarget
"_self" Ö¸¶¨µ±Ç°´°¿ÚÖеĵ±Ç°Ö¡¡£
"_blank" Ö¸¶¨Ò»¸öд°¿Ú¡£
"_parent" Ö¸¶¨µ±Ç°Ö¡µÄ¸¸¼¶¡£
"_top" Ö¸¶¨µ±Ç°´°¿ÚÖеĶ¥¼¶Ö¡¡£
function check(us ......
1. Ò»ÖÖÃæÏò¶ÔÏóÓïÑÔÐèÒª¿ª·¢ÕßÌṩÒÔÏÂËÄÖÖ»ù±¾ÄÜÁ¦¡£
£¨1£©·â×°---°ÑÏà¹ØÐÅÏ¢£¨ÎÞÂÛÊôÐÔ»¹ÊÇ·½·¨£©´æ´¢ÔÚ¶ÔÏóÖеÄÄÜÁ¦¡£
£¨2£©¾Û¼¯---°ÑÒ»¸ö¶ÔÏó´æ´¢ÔÚÁíÒ»¸ö¶ÔÏóÄÚµÄÄÜÁ¦¡£
£¨3£©¼Ì³Ð---ÓÉÁíÒ»¸öÀࣨ»ò¶à¸öÀࣩµÃÀ´ÀàµÄÊôÐÔ»ò·½·¨µÄÄÜÁ¦¡£
£¨4£©¶à̬---±àдÄÜÒÔ¶àÖÖ·½·¨ÔËÐеĺ¯Êý»ò·½·¨µÄÄÜÁ¦¡£
2. °Ñ¶ÔÏóµÄËù ......