воскресенье, 27 февраля 2011 г.

Flash+Ajax

Приспичило мне такое дело. Захотелось флэш меню с аяксом,  чтобы всю страницу не релоадить по каждому клику. Погуглёж оказался на удивление долгим, на большую часть вопросов по форумам "как мне сделать такую штуку..." вылезал какой-нить хмырь и отвечал "итс импосибле!  донт юз флэш, итс сакс..." ну или что-то очень похожее. Но мы-то знаем, что если гуглить тщательно, то найти можно даже секретные отчёты соседней поликлиники.



Нужный интерфейс описан тут на великом и могучем.

Принципиально всё происходит так:

  • создаем на JS функцию обработчик (она может иметь любое кол-во аргументов) например
    function reloadTarget(target) 
    {
      $.ajax({
        url: "showContent.php?btn=" + target,
        cache: false,
        dataType: "html",
        success: function(data) {
            $("#content").html(data);
        }
      });
    }
    
  • в коде AS3 в обработчик нажатия на кнопку вставляем вызов внешней (JS) функции и передаём ему имя нажатой кнопки:
    function buttonClick(event:Event):void
    {
        ExternalInterface.call("reloadTarget", event.target.name);
    }
    
Осталось подготовить рабочий пример, счас я этим и займусь...
...спустя 20 минут: пример.
И ничего сложного =)


Комментариев нет:

Отправить комментарий