2013-11-19 2 views
2

Итак, я пытаюсь взаимодействовать с переменными flash, используя jQuery. Оригинальный автор флеш-программы еще не вернулся ко мне, и поэтому я подумал спросить здесь. Я не настолько силен в AC3, поэтому простите меня.Использование jQuery для доступа к функции Flash

В оригинальном сценарии действий, я добавил новый оператор импорта:

import flash.external.*; 

Там функция, которая инициализирует программа называется иней и добавила это к основанию:

//MODS=========== 
ExternalInterface.addCallback(‘gotoLastPage’,gotoLastPage) 
//=============== 

Для всех интенсивного цели, просто знайте, что существует существующая и работающая функция, называемая gotoLastPage. Он объявляется как private void и работает по умолчанию. Все выглядело там прекрасно, не было ошибок, когда я перекомпилировал swf-файл.

Теперь объект SWF инициализируется как этот

var flashvars = {}; 
flashvars.pages = “reader_fl/pages.xml”; 
flashvars.settings = “reader_fl/settings.xml”; 
var params = {}; 
params.quality = “high”; 
params.scale = “noscale”; 
params.wmode = “transparent”; var attributes = {}; 
attributes.align = “middle”; 
attributes.allowFullscreen = “true”; 

swffit.showScrollV(); 
swfobject.embedSWF("reader_fl/PageFlip_v6.swf", "Reader_Window_player", "100%", "100%", 
"10.0.0", false, flashvars, params, attributes); 

В качестве примечания, я использую SWFObject. Читатель прекрасно подходит и обертывает div с именем Reader_Window_player.

Теперь, когда я иду в JQuery, я попробовал:

$("#Floating_CtrlStart").click(function(){ 
var Reader = $('#Reader_Window_player')[0]; 
Reader.gotoLastPage(); 
}) 

Однако, я до сих пор не могу показаться, чтобы получить доступ к gotoLastPage. Консоль говорит, что gotoLastPage не определен.

Любая помощь здесь?

+1

попробовать добавить 'параметр allowScriptAccess', как:' params.allowScriptAccess = "всегда" ' – Cherniv

ответ

0

Вы открываете страницу html из файловой системы и не обслуживаете ее с веб-сервера? Если это так, это объясняет, почему оно не работает.

призывает к ExternalInterface потерпеть неудачу, если содержание (HTML и SWF) находится в локальном с сетевым или локальных с файловой системой песочницу (источник: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7c9b.html).

-2

Я люблю JQuery, но я обычно делаю, что старый способ моды:

var getSwf = function (swfName) { 
    var isIE = navigator.appName.indexOf("Microsoft") != -1; 
    return (isIE) ? window[swfName] : document[swfName]; 
} 
getSwf("Reader_Window_player").gotoLastPage(); 

Также убедитесь, что у вас есть следующие в ваших JS:

attributes.id = "Reader_Window_player"; 
attributes.name = "Reader_Window_player"; 

и, как @Cherniv говорится в комментарии :

params.allowScriptAccess="always" 
+0

почему d собственное голосование? пожалуйста, объясни... – mika

Смежные вопросы