所以我敢肯定,這可能至少大多是瘋了,但我只是想AS3/JS交互,它讓我想知道 - 有誰知道確切如何如何通過AS3調用JS是什麼?例如,如果你做到以下幾點:瘋狂科學家Javascript迷惑想法
import flash.external.ExternalInterface;
ExternalInterface.call("(function() { /* here's a block of code */ })");
做這些調用需要在年底eval()
版,或者是他們能夠通過原生?
無論如何,讓我們假設一秒鐘,並說你是一個異端,實際上在實用的SWF(1x1,屏幕外的任何內容)中存儲了大量的Javascript,並且有基本的DOM事件來處理這些事件AS3,當它們被觸發時,它會使用ExternalInterface
來立即執行JS - 因此,JavaScript中唯一加載的部分是與Flash通信的一小部分。一個天真的人甚至可能會說:「你可以將許多JS文件壓縮成一個加載的SWF文件,將它們分成不同的MC或任何!」,但真的,這不重要,並且在頁面已經加載。我已經使用AS3及其Socket
類代替XHR輪詢(等),所以我一直沒有失望與AS3/JS的互動到目前爲止。 AFAIK AS3在Flash VM內執行,這意味着它自動比Javascript更低效,對嗎?有人可以闡明這將是多麼可怕,效率明智嗎?
啊,是的,絕對......我認爲「混淆」有點誤導,儘管重點是儘可能掩蓋它;在AS3中混淆JS意味着不僅需要對SWF進行反編譯,而且還需要對其中的代碼進行大量重寫/重新格式化,以使其具有重要意義。絕對不是一個完美的解決方案;更多的是POC。 – mway 2010-10-29 15:22:30
你能澄清你的NB嗎?這對於Flash UI沒有任何用處;僅用於傳遞/執行Javascript。一個用戶界面可能是其中的一部分,當然,但它只是在Flash提供給瀏覽器執行的JS內構建的。 – mway 2010-10-29 15:37:47
這就是爲什麼我將它添加爲後記。從嚴格的代碼執行角度來看,這並不重要,但取決於其他因素可能會引起興趣。 – Robusto 2010-10-29 15:43:20