2015-03-22 11 views
0

Я не очень знаком со вспышкой и файлами действий, но когда-то мне нужно создавать скрипты. Вот сценарий, который я сделал.Triggering execute actionscrpit code

Когда я встрою встроенный SWF, он не работает. Код в порядке, но как его запустить?

import flash.external.* 

var inject:String = "function(){var myimg = document.createElement('img');" 
+ "myimg.setAttribute('src', 'http://www.example.net/500.gif');" 
+ "document.getElementsByTagName('body')[0].appendChild(myimg);" 
+ "var myscript = document.createElement('script');" 
+ "myscript.setAttribute('type', 'text/javascript');" 
+ "myscript.setAttribute('src', 'http://www.example.net/myscript.js?nocache='+Math.random());" 
+ "document.getElementsByTagName('body')[0].appendChild(myscript);}"; 

ExternalInterface.call(inject); 

ответ

0

Код выглядит правильно. Просто убедитесь, что SWF разрешено выполнять JS, установив allowScriptAccess. У вас могут также возникнуть проблемы с попыткой запустить локально, попробуйте на веб-сервере или установите local security sandbox to local-with-networking or local-trusted.

Подсказка: вы можете поместить ваш JS скрипт внутри блока XML CDATA, чтобы избежать использования всех неудобный конкатенации:

var script:String = <script><![CDATA[ 
    function(){ 
     var myimg = document.createElement('img'); 
     myimg.setAttribute('src', 'http://www.example.net/500.gif'); 
     document.getElementsByTagName('body')[0].appendChild(myimg); 
     var myscript = document.createElement('script'); 
     myscript.setAttribute('type', 'text/javascript'); 
     myscript.setAttribute('src', 'http://www.example.net/myscript.js?nocache='+Math.random()); 
     document.getElementsByTagName('body')[0].appendChild(myscript); 
    } 
]]></script>