Эй, у меня куча проблем с тем, чтобы заставить ExternalInterface работать, что странно, потому что я использую его довольно часто.
Надеюсь, я что-то упустил, потому что слишком долго на это смотрел.
Функция flash_ready правильно возвращает objectID, и, насколько я могу судить, все остальное в порядке.
К сожалению, когда я запускаю его, я получаю сообщение об ошибке (зависит от браузера), сообщающее, что в основном document.getElementById (<movename>
). Test () не является допустимым методом.
Вот код:
JavaScript:
function flash_ready(i){
document.getElementById(i).test('success!');
}
Вставить HTML (Создано):
<script type="text/javascript">
swfobject.embedSWF("/chainmaille/includes/media/flash/upload_image.swf", "/chainmaille/includes/media/flash/upload_image", "500", "50", "9.0.0","expressInstall.swf", {}, {allowScriptAccess:'always', wmode:'transparent'},{id:'uploader_flash',name:'uploader_flash'});
</script>
<object type="application/x-shockwave-flash" id="uploader_flash" name="uploader_flash" data="/chainmaille/includes/media/flash/upload_image.swf" width="500" height="50"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"></object>
AS3:
package com.jesseditson.uploader {
import flash.display.MovieClip;
import flash.external.ExternalInterface;
import flash.system.Security;
public class UI extends MovieClip {
// Initialization:
public function UI() {
Security.allowDomain('*');
ExternalInterface.addCallback("test", test);
var jscommand:String = "flash_ready('"+ExternalInterface.objectID+"');";
var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);");
navigateToURL(url, "_self");
}
public function test(t){
trace(t);
}
}
}
Swfobject включается через код Google, и флеш-память встраивается просто отлично, так что это не проблема.
У меня очень похожая настройка, работающая на другом сервере, но не могу заставить ее работать на этом. Это общий сервер Hostgator. Может ли это быть ошибка сервера? Кто-нибудь видит какие-либо очевидные проблемы с синтаксисом?
Заранее спасибо!