Получить Fscommand в Flex3 - PullRequest
       13

Получить Fscommand в Flex3

0 голосов
/ 08 октября 2009

У меня есть один SWF-файл, в котором я использовал fscommand для получения окончательного результата при нажатии кнопки отправки в этом SWF я загружаю этот SWF-файл в SWFloader во flex3.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 08 октября 2009

fscommand нельзя использовать для связи между загруженными и содержащими SWF-файлами.

С Liveocs

fscommand: позволяет SWF-файлу обмениваться данными либо с Flash Player, либо с программой, в которой установлен Flash Player, например с веб-браузером. Вы также можете использовать функцию fscommand () для передачи сообщений в Director или Visual Basic, Visual C ++ и другие программы, в которых могут размещаться элементы управления ActiveX.

Вы можете вызвать метод в загруженном SWF-файле ИЛИ напрямую обратиться к его свойствам ИЛИ использовать события ИЛИ использовать локальное соединение для передачи данных между родительским и загруженным SWF-файлами.

0 голосов
/ 08 октября 2009

ТЕХНИЧЕСКИ это возможно, но плохая идея. Вам нужно будет зарегистрировать обратный вызов, который будет вызывать дочерний swf (обычно выполняется из дочерний swf). Но вы рискуете испытать головную боль, и вам придется больше полагаться на браузер, чем на другие варианты. Это также будет медленнее, чем решение только для AS.

Вам намного лучше (в таком порядке):

  1. Используя общий синглтон. Это позволяет для полного разделения двух SWF не требует какой-либо серьезной координации между ними. Единственный Реальная потенциальная проблема может быть вызвана, если вы хотите, чтобы у дочернего SWF была собственный ApplicationDomain, но даже при этом есть обходные пути
  2. Использование событий. Это может сработать, если у вас дочерний swf отправляет пузыри, событие, которое нельзя отменить, и записать event.target родительский swf. Возможно, вам придется настроить, чтобы избежать SecuritySandboxViolation с, однако.
  3. Использование LocalConnections. Два вреда для LocalConnections:
    • Вам нужно будет постоянно заново генерировать уникальные имена соединений, чтобы избежать ошибки, если подключить два LocalConnections к одному канал.
    • LocalConnections имеют ограничения пропускной способности, которые могут вызвать замедления, если есть большой объем трафика или если сообщения слишком большой.
  4. Используя прямые манипуляции типа loader.content.foo.bar.baz; Мне не нравится это решение, потому что его гораздо сложнее поддерживать. это также намного хуже с точки зрения дизайна: вы хотите использовать максимально возможная инкапсуляция в этой ситуации - эта техника активно работает против этого.
...