Как правильно загрузить Adobe Captivate SWF из Flash Player 9 (не 10) - PullRequest
0 голосов
/ 14 ноября 2009

Почему Adobe не следует их собственному совету и не использует Captivate swf для прослушивания своего собственного события UNLOAD и очистки всех своих таймеров, прослушивателей событий, внешних ссылок и т. Д.

Я нахожу это ОЧЕНЬ ТРУДНЫМ, чтобы извлечь SWF-файл Adobe Captivate из памяти флэш-плеера после загрузки в Loader . Очевидно, что метод unloadAndStop недоступен во Flash Player 9, поэтому, пожалуйста, даже не упоминайте об этом, если только у вас нет эквивалента исходного кода actionscript для метода, который будет работать во Flash Player 9.

Я попытался установить для параметра Loader.content ["rdcmndRewindAndStop"] значение 1, чтобы файл Captivate перемотал и остановил файл. Это работает, но после выгрузки содержимого я вижу, что после вывода содержимого отладчика содержимое остается в памяти в ответ на некоторые события:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at captivate.Veela_AS3::rdAVM1SwfLoader/getLoadBase()
at captivate.Veela_AS3::rdAVM1SwfLoader/onload()
at captivate.Veela_AS3::rdAVM1SwfLoader/initItemVariables()
at captivate.Veela_AS3::rdItem/frame1()

Ответы [ 2 ]

1 голос
/ 03 декабря 2009

Даже с помощью Flash Player 10 и метода unloadAndStop, при котором ничего не происходит, кроме загружаемого видеоролика, использования памяти в текстовом поле и принудительного сбора мусора, я вижу, что файл захвата не будет выгружен, даже в самая простая ситуация

Я подумываю над тем, чтобы поместить файлы в плен и загрузить их из отдельного домена безопасности, субдомена сервера, и попробую это сделать. Если у кого-то был успех, я хотел бы знать.

Спасибо,

кб

0 голосов
/ 02 июня 2017

Недавно пришлось разобраться с этой же проблемой, мне было поручено обновить флеш-плеер контента, также сделанный во флеше. Проблема в том, что теперь они хотели, чтобы он воспроизводил контент Captivate, который был опубликован в формате SWF.

Я исправил проблему выгрузки Captivate, загрузив их в свою собственную копию другого флэш-файла.

Итак, у меня есть:

  • ContentPlayer.fla
  • CaptivateLoader.fla
  • Captivate.cptx

Каждый раз, когда необходимо загрузить новый Captivate, вместо этого ContentPlayer загружает новую копию CaptivateLoader.swf и сообщает ему загрузить Captivate.swf. Когда contentPlayer выгружает предыдущий CaptivateLoader.swf, все, что он загружает, уничтожается вместе с ним.

...