Поэтому у меня есть одна функция:флэш ExternalInterface.addCallback ошибка
public function handleOnSave(e:MouseEvent):void
{
var ml:MultipartURLLoader = new MultipartURLLoader();
var bmData:BitmapData = scrollView.getBitmapData();
ml.addEventListener(Event.COMPLETE, onSaveComplete);
// simple string data
ml.addVariable("ad_id", ParamsObject.lastInstance.param_id);
ml.addVariable("ad_type", ParamsObject.lastInstance.param_type);
ml.addVariable("image_width", bmData.width);
ml.addVariable("image_height", bmData.height);
ml.addVariable("save_data", scrollView.getSavedData());
trace(scrollView.getSavedData());
var jpgSource:Bitmap = null;
var jpgEncoder:JPGEncoder = new JPGEncoder(99);
var jpgStream:ByteArray = jpgEncoder.encode(scrollView.getBitmapData());
var pngStream:ByteArray = PNGEncoder.encode(bmData);
ml.addFile(jpgStream, 'test2.jpg', "pic" , 'image/jpeg');
trace(pngStream.length + ' ' + jpgStream.length);
ml.load("/flash/uploadFP.php");
}
У меня есть кнопка, чтобы вызвать его, как:
save_btn.addEventListener(MouseEvent.CLICK, handleOnSave);
То, что я хочу сделать, это поставить эту кнопку вне вспышки и вызвать эту функцию с помощью Java Script ExternalInterfacе как:
ExternalInterface.addCallback("save",handleOnSave);
но браузер возвращает
uncaught exception: Error in Actionscript. Use a try/catch block to find error.
Я пытаюсь вызвать функцию, которая возвращает только предупреждение для успеха, и она работала. Я искал это, и единственное, что люди предлагают, это использовать
Security.allowDomain("*");
Я сделал это, но проблема осталась.
Отредактировано:
OK попробовать/поймать вернулся Error # 2176!
Для справки: # 2176 - Некоторые действия, например всплывающие окна, могут вызываться только при взаимодействии с пользователем, например, щелчком мыши или нажатием кнопки. –