Flash не может иногда запускать события на URLLoader - PullRequest
3 голосов
/ 10 августа 2010

У меня есть экземпляр URLLoader, который отлично работает на моей машине и на ряде других машин, но в редких случаях, независимо от версии браузера или флеш-плеера, URLLoader никогда не возвращается ни с одним из моих обратных вызовов и т. Д.метод load () запускается в стратосферу, и после этого ничего не происходит.

Любопытно, сталкивался ли кто-то еще с этим и, если да, то как он обошел его.

[EDIT]

Хорошо ... не говоря уже о том, что «никакие обратные вызовы не запускаются».На самом деле он запускает SecurityError.SECURITY_ERROR.Тем не менее, я в полном недоумении, почему он будет запускать это только на некоторых машинах, а не на других.Это как-то связано с правами администратора пользователя или настройками безопасности браузера?Ошибка 2170, phaseTwo (что бы это ни значило)

[EDIT 2]

EUREKA !!!К www или не к www это вопрос (точнее ответ).Эта проблема не имела ничего общего с компьютерами, а скорее с загрузкой страницы без www в некоторых случаях.Флэш не знает, что делать в этой ситуации.Brilliant!

Ответы [ 2 ]

3 голосов
/ 11 августа 2010

На ум приходят три вещи, которые могут вызвать это:

Убедитесь, что вы ловите SecurityError.SECURITY_ERROR и IOError.IO_ERROR.Если произойдет ошибка, событие COMPLETE не будет вызвано.

Если Loader не добавлено в дерево пользовательского интерфейса, оно не будет работать.Если это так, вы должны использовать URLLoader вместо этого.

Если вы добавляете прослушиватели событий, используя addEventListener, убедитесь, что вы не используете слабые ссылки.Если у вас есть права и их нет, они могут быть собраны в мусор, что вызовет ваши симптомы.

0 голосов
/ 11 августа 2010

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

Вышеприведенная проблема (которая может быть, а может и не быть здесь) не является распространенной на практике, по моему опыту, но она определенно возможна (я сам видел это). Я не уверен, при каких именно обстоятельствах это происходит. Я думаю активный загрузчик не будет собран. Но я не уверен, что активный загрузчик для игрока такой же, как активный загрузчик с точки зрения ActionScript. Это означает, что из вашего кода AS активный загрузчик будет загрузчиком, для которого вы вызвали метод загрузки и еще не завершили загрузку (с ошибками или без них). Теперь, для игрока (опять же, это очень образованное предположение), активный может означать что-то другое. Вы можете загрузить только 2 ресурса с одного домена одновременно (ограничение браузера); если вы попытаетесь загрузить больше материала, эти операции будут поставлены в очередь игроком. Поэтому, возможно, загрузчик, для которого вы вызвали load, но фактически не начал реальную загрузку, не считается активным игроком, и поэтому его можно собрать.

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