2009-12-09 71 views
1

即時通訊發送命令字符串到Flash應用程序,執行調試命令。通過Firebugs控制檯/命令行來做到這一點看起來是最簡單的方法來啓動和運行。添加全局JavaScript函數,jQuery風格?

目前我可以使用ExternalInterface調用控制檯從Flash應用程序登錄到Firebug控制檯。還可以通過調用ExternalInterface.addCallback方法添加的command方法發送Flash應用程序命令。因此,在包含Flash應用程序的HTML文件,目前我有一些JavaScript:

$(document).ready(function(){ 
    app = $("#${application}").get(0) 
}) 

,並在命令行螢火我可以輸入:

app.command('screen.ruler.show') 

和Flash應用程序接收到這一點。所以這一切都很好,但我想盡可能縮短app.command的通話時間。

所以,我想分配app.command功能的單個字符函數風格的jqueries $方法。那麼我將如何去實現一個函數$$$?

$$$('screen/ruler.show') 

回答

3
$$$ = function(args) { 
    app.command(args); 
} 
+1

那麼這是驚人的容易:) – 2009-12-09 09:48:58

+0

是的,我知道。 :) – 2009-12-09 09:50:15

+0

請注意,使用var時,函數將不會是全局的,並且可以在任何地方訪問。 – googletorp 2009-12-09 09:51:00

0

實施例:

$(function() { 
    $$$("Fred"); 
}); 

var app = { 
    command: function(arg) { 
    alert("hello " + arg); 
    } 
}; 

function $$$(arg) { 
    app.command(arg); 
} 

這相當於:

var $$$ = function(arg) { 
    app.command(arg); 
} 

到明確的函數聲明。

JavaScript有所謂first class functions

2

你不必做這個複雜和使用閉等如jQuery,你可以做

$$$ = app.command 

或包裹它的功能

function $$$(arg) { 
    app.command(arg); 
} 

內或將其連接到窗前,彷彿jQuery:

window.$$$ = function(arg) { 
    app.command(arg); 
}