Actionscript3 к коммуникации JavaScript: лучшие практики

Вы переустановили все, но не воссоздали виртуальную среду.

Итак, очевидный ответ: воссоздать виртуальную среду.

Мои рекомендации: используйте pipenv:

pip install pipenv 
mkdir django_project && cd django_project
pipenv install django
pipenv shell 

Фиксация созданного Pipfile в VCS, не теряйте ваше env-определение в будущем.

6
задан 2 revs 23 May 2017 в 12:15
поделиться

3 ответа

ExternalInferface был создан для создания коммуникации между JS и Flash легче, таким образом, doens't действительно имеет смысл использовать что-либо еще. Обычная практика должна проверить если его доступное сначала путем оценки значения свойства ExternalInterface.available прежде, чем позвонить некоторому JS. Это свойство говорит Вам, если SWF, в котором Вы хотите назвать некоторый JS от, в контейнере, который предлагает внешний интерфейс. В otherwords, при использовании ExternalInterface будет работать. Если не доступный затем просто используют flash.net.sendToUrl. Никогда не используйте fscommand (), поскольку он использует VBScript и может вызвать конфликты с другим VBScript на странице. Кроме того, можно только отправить одну строку аргумента с fscommand и иметь для разделения его на стороне JS.

6
ответ дан 8 December 2019 в 18:43
поделиться

ExternalInterface

  • Можно получить возвращаемое значение от вызовов JS-AS и AS-JS
  • Кодирует Ваши аргументы (вызов с массивами, объектами, и т.д. Никакая потребность закодировать их)
  • Перекрестный браузер
  • Испорченный при отправке HTML или JSON (специальное кодирование) это повреждается внутренне

getURL

  • Можно только назвать JS, Вы не получаете возвращаемое значение, и необходимо закодировать данные
  • Было хорошо, чем устаревший, и в Flash 10 это удалено
  • Это действительно удалено, не используйте его ;)

fscommand

  • Продвиньтесь, ExternalInterface является решением (на 2008).
2
ответ дан 8 December 2019 в 18:43
поделиться

Все это зависит от того, если Вы хотите, чтобы коммуникация была синхронна или не как ExternaInterface может возвратить данные как где navigatoToURL и fscommand являются асинхронными и может только вызвать функцию JavaScript; они не могут возвращать значения или ответ.

Из живых документов относительно Внешнего Интерфейса:

От ActionScript можно сделать следование страницы HTML:

  • Вызовите любую функцию JavaScript.
  • Передайте любое количество аргументов с любыми именами.
  • Передайте различные типы данных (булевская переменная, Число, Строка, и так далее).
  • Получите возвращаемое значение от функции JavaScript.

От JavaScript на странице HTML Вы можете:

  • Вызовите функцию ActionScript.
  • Аргументы передачи с помощью стандартной функции называют нотацию.
  • Возвратите значение к функции JavaScript.

flash.external.ExternalInterface класс является прямой заменой для flash.system.fscommand класс.

Так использование ExternalInterface является предпочтительным методом или коммуникацией между флэш-памятью и функцией JavaScript, хотя, если вызов является просто Асинхронным, нормально использовать flash.net.navigateToURL.

5
ответ дан 8 December 2019 в 18:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: