Тест Flex-IFrame Comm не работает - PullRequest
0 голосов
/ 26 августа 2010

Я пытаюсь получить пример IFrameCommTest ( с сайта Flex-IFrame ) для работы во Flex 4, и, хотя сам IFrame работает, связь не работает.В частности, мне нужно получить включенную HTML-страницу для вызова функций из приложения flex (у меня уже есть способ заставить приложение Flex общаться с HTML).

Я экспортировал проект , чтобы облегчить вашу помощь.

Проблема, я подозреваю, в том, что «parent.FABridge» не существует.Я предполагаю, что кое-что в flex4 изменилось относительно того, как вещи расположены в DOM.

(Этот пост относится к более раннему посту о FABridge.

Я подумал, что это будет более ясный пример проблемы.)

Спасибо

Брайан

1 Ответ

0 голосов
/ 26 августа 2011

Я решил это сам: D

Разница по сравнению с механизмом, описанным выше, заключается в функции getFlexApp (), которая обеспечивает, в общем, способ получения объекта flex.Как только объект получен, я просто вызываю функцию EIButtonClicked () и передаю ей значение.

function getFlexApp(appName) {
    if (navigator.appName.indexOf ("Microsoft") !=-1) {
        return window.top[appName];
    } else {
        return window.top.document[appName];
    }
}

function callFlexFunction() { 
    var sTxt ;
    sTxt  = document.getElementById('txt1').value;
    alert('HTML/Javascript wants to tell you about ' + sTxt);
    getFlexApp('iframeCommTest').EIButtonClicked(sTxt) ;
} 

Между тем, на стороне гибкого канала установлен обратный вызов внешнего интерфейса.Вы можете видеть, что «EIButtonClicked», на который ссылается JS выше, соответствует метке для обратного вызова в AS ниже.

/**
* When the button is clicked.
*/
public function onEIButtonClicked(data:String):void {
  Alert.show("Flash wants to tell you about " + data);
}


protected function application1_creationCompleteHandler():void {
  // TODO Auto-generated method stub
  if (ExternalInterface.available) { 
    ExternalInterface.addCallback("EIButtonClicked", onEIButtonClicked); 
  } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...