Показать сообщение отдельно
Старый 25.04.2014, 14:04
helio вне форума Посмотреть профиль Отправить личное сообщение для helio Найти все сообщения от helio
  № 4  
Ответить с цитированием
helio

Регистрация: Nov 2013
Сообщений: 47
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
ExternalInterface – это взаимодействие флешки с браузером (с JavaScript'ом). Запускайте детище из браузера – и ExternalInterface станет true. Без всяких этих страшных окошек с сайта макромедии )
Объясню ещё раз что я имею ввиду. Мне нужно запретить скролл браузера. Так вот использую эту либу. Так вот в главном классе приложения пишу такую строчку

Код AS3:
BlastedMouseWheelBlock.initialize(stage, "externalDynamicContent");
где externalDynamicContent это id, указанный в html-коде в объявлении атрибутов.
и у меня постоянно в FB выскакивает исключение:
[Fault] exception, information=UninitializedError: No External Interface available. Please, disable BlastedMouseWheelBlock
А вот полный вывод окна Output в FlashDevelop:
Код:
Running process: C:\Program Files\FlashDevelop\Tools\fdbuild\fdbuild.exe "\\psf\Home\Desktop\genplans_flash_src\Plan2.as3proj" -ipc 8c0fa801-1260-442f-b83f-717d6dce9787 -version "4.6.0; 3.9" -compiler "C:\Program Files\FlashDevelop\Tools\flexsdk" -library "C:\Program Files\FlashDevelop\Library"
Building Plan2
mxmlc -load-config+=obj\Plan2Config.xml -debug=true -incremental=true -swf-version=10 -o obj\Plan2635338667880000000
Incremental compile of 1
 Loading configuration file C:\Program Files\FlashDevelop\Tools\flexsdk\frameworks\flex-config.xml
Loading configuration file \\psf\Home\Desktop\genplans_flash_src\obj\Plan2Config.xml
Files changed: 1 Files affected: 0
obj\Plan2635338667880000000 (695103 bytes)
(fcsh)Build succeeded
Done(0)
[Starting debug session with FDB]
[Fault] exception, information=UninitializedError: No External Interface available. Please, disable BlastedMouseWheelBlock
Кусок кода из класса BlastedMouseWheelBlock
Код AS3:
if (ExternalInterface.available)
{
    isMac = Capabilities.os.toLowerCase().indexOf("mac") != -1;
 
    externalJavascriptFunction = EXTERNAL_JAVASCRIPT_FUNCTION_P1 + flashObjectID + EXTERNAL_JAVASCRIPT_FUNCTION_P2;
    BlastedMouseWheelBlock.nativeStage = stage;
    stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseOverStage);
    stage.addEventListener(Event.MOUSE_LEAVE, mouseLeavesStage);
    stage.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
 
    ExternalInterface.call("eval", externalJavascriptFunction);
 
    ExternalInterface.addCallback("scrollHappened", scrollHappened);
 
    ExternalInterface.call("registerEventListeners", isMac);
}
else
{
    throw new UninitializedError(NO_EXTERNAL_INTERFACE_ERROR);
}
Так как быть, прежде чем запустить html в браузере мне ведь нужно скомпилировать успешно, а потом уже тестить в браузере? Или вы говорите о методе когда при дебаге в браузере, т.е. вместо плеера открывается браузер?