На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: PIL
  
> Пару общих вопросов по Flash
    1. Пример:
    Есть мой сайт, на сайте php скрипт с json ответом и лежит этот самый flash.

    На других доменах мой скрипт размещают (ссылка на мой сайт).
    Скажем мой сайт (где флеш и скрипт http://mysite.eu/ )
    Человек разместил мой флеш (ссылка на флеш - с моего сайта) на свой сайт ( http://allsite.cew/ )

    Вопрос:

    По клику на флеш, может ли послать json данные моему скрипту (который лежит на http://mysite.eu/ ) и получить ответ?
    т.е. например в JS AJAX сделать запрос на другой ресурс нельзя, это была бы дыра.


    2. У меня флеш размером 400*200.

    Мне иногда нужно показывать данные во весь екран над HTML (пример на html http://leandrovieira.com/projects/jquery/lightbox/ - нажмите на картинку во вкладке example). Такое возможно сделать?

    Или можно с флеша вызвать функцию на странице с параметрами?
      Цитата
      По клику на флеш, может ли послать json данные моему скрипту (который лежит на http://mysite.eu/ ) и получить ответ?

      Ну, JSON вообще-то ничего не посылает, это формат представления данных. Но если опустить эту неточность...
      Если флеш-мувик открыт из того же домена, куда он адресует запрос, то запрос отработает. Если нет, то флеш-плеер будет искать файл политики безопасности (где и как прочитайте в документации). Если файл политики будет найден и в нем будет указан домен с которого был сделан запрос, то запрос отработает, иначе вывалится SecurityError.

      Цитата
      Мне иногда нужно показывать данные во весь екран над HTML. Такое возможно сделать?

      Да, средствами javascript. К слову, Flash и Javascript могут вызывать функции друг друга (подробности в документации). Есть возможность Fullscreen, реализованная в самом плеере (вроде с 9 версии начиная, точно не помню).

      Цитата
      Или можно с флеша вызвать функцию на странице с параметрами?

      Да, смотри выше.
        Цитата piksel @
        Ну, JSON вообще-то ничего не посылает, это формат представления данных. Но если опустить эту неточность...
        Я это и имел ввиду.

        Цитата piksel @
        Да, смотри выше.
        Вот у меня вопрос:

        Flash CS5 AS3.0

        есть такой код:
        ExpandedWrap disabled
          calculate.addEventListener(MouseEvent.CLICK, fl_ClickToGoToWebPage_2);
           
          function fl_ClickToGoToWebPage_2(event:MouseEvent):void
          {
              import flash.external.ExternalInterface;
              if (ExternalInterface.available)
              {
                  ExternalInterface.call("nameOfJSFunction");        
                  trace("JS call");
              }
           
          }


        calculate - кнопка.

        В HTML
        ExpandedWrap disabled
          function nameOfJSFunction(){alert('ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫыыыыыыыыыыыыыыыыыыыыыы');}

        Во флеше в вывод JS call записывается, а вот в в браузере вызов ф-и не происходит (логи браузера чисты)

        Что я еще не доделал?

        Вопрос решил. Ошибка была в том что страницу запускал не на сервере.
        Сообщение отредактировано: Лёха -
          Странно, но у меня всё работает:
          ExpandedWrap disabled
            package {
                import flash.display.Sprite;
                import flash.events.Event;
                import com.bit101.components.PushButton;
                import flash.external.ExternalInterface;
                import flash.events.MouseEvent;
             
                public class Main extends Sprite {
             
                    public function Main():void {
                        if (stage)
                            init();
                        else
                            addEventListener(Event.ADDED_TO_STAGE, init);
                    }
             
                    private function init(e:Event = null):void {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        var calculate:PushButton = new PushButton(this, 5, 5, "click me!", fl_ClickToGoToWebPage_2);
                    }
             
                    private function fl_ClickToGoToWebPage_2 (event:MouseEvent):void {
                        if (ExternalInterface.available){
                            ExternalInterface.call("nameOfJSFunction");
                            trace("JS call");
                        }
                    }
                }
             
            }
            Я запускал с винта html файл, там не работало. А если с сервера - то всё Ok.
              У меня с винта работает. Наверное отличие в каких-то настройках компиляции.
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0243 ]   [ 15 queries used ]   [ Generated: 3.05.24, 13:39 GMT ]