FlashVars или ExternalInterface - PullRequest
       29

FlashVars или ExternalInterface

2 голосов
/ 11 июля 2010

До сих пор я использовал ExternalInterface в тех редких случаях, когда мне нужно было общаться с HTML.

  • Считается ли FlashVars лучше / хуже или новее / старше?
  • или когда вы используете один или другой? По какой логике я должен следовать, чтобы решить, какой из них использовать?

1 Ответ

7 голосов
/ 11 июля 2010

FlashVars не лучше и не хуже. Это просто другое. Это позволяет вам передавать некоторые данные в ваш SWF во время загрузки . Если все, что вам нужно, это сначала передать вам какой-то контекст, FlashVars - это то, что вам нужно.

Теперь, если вам требуется больше взаимодействия между вашим SWF и его хостом (который в большинстве случаев является веб-браузером, который может запускать Javascript), ExternalInterface поможет вам.

Если вы хотите передать данные из swf на хост, используйте ExternalInterface.call со стороны AS и установите соответствующую функцию JS в html. Если связь идет наоборот, используйте ExternalInterface.addCallback со стороны AS и используйте функцию JS, которая вызывает этот обратный вызов в вашем html. Конечно, вы можете использовать как call, так и addCallback, если вам это нужно. Однако в большинстве случаев я использую только ExternalInterface.call, так как я использую этот механизм главным образом для вызова аналитики Google или какой-либо другой системы отслеживания.

Важным аспектом ExternalInterface является то, что для его успешной работы необходимо загрузить как swf, так и код JS, который обрабатывает связь. Это очевидно, если вы подумаете об этом на секунду, но может привести к проблемам, если вы не будете это учитывать. То есть, если из JS вы вызываете функцию, которая еще не была добавлена ​​в качестве обратного вызова в ваш SWF, ну ... она не будет вызываться. То же самое верно и в обратном направлении, хотя на практике это происходит гораздо реже.

...