2015-03-11 4 views
0

Как я могу гарантировать, что ThrottleEvent поддерживается текущим используемым браузером?Убедитесь, что дросселирование поддерживается в браузере AS3

я могу видеть, что они упоминают некоторые браузеры, которые поддерживают его:

Платформы, которые поддерживают дроссельную и приостановку в настоящее время является следующим: Flash Player Desktop Mac и Windows, AIR Mobile и Android Flash Player. Следующие платформы не отправляют ThrottleEvent автоматически, потому что они еще не поддерживают приостановку или дросселирование: AIR для ТВ-устройств, AIR для рабочего стола и Flash Player Linux Desktop.

Но я не думаю, что я могу проверить специально для каждого из них (я думаю, есть также случаи с краем).

Я хотел бы сделать что-то вроде этого:

package 
{ 
    import flash.display.MovieClip; 
    import flash.external.ExternalInterface; 
    import flash.events.ThrottleEvent; 
    import flash.events.ThrottleType; 

    public class TestThrottle extends MovieClip 
    { 
     public function TestThrottle() 
     { 
      var throttlingIsEnabled = ??? 
      ExternalInterface.call('throttlingSupported', throttlingIsEnabled); 
     } 
    } 
} 

Вы знаете способ, как я могу добиться этого?

+0

Почему вы хотите знать, поддерживается ли регулирование дросселирования? Поскольку это оптимизация производительности, есть ли проблема с ее кодированием для любого случая, когда она поддерживается, и случаи, когда она не поддерживается, в любом случае нет никакой разницы? – Aaron

+0

@Aaron Он напрямую связан с моим другим вопросом: http://stackoverflow.com/questions/28853243/start-pause-timer-in-movieclip-when-in-viewport. Это похоже на мой другой вопрос, но только в поддерживаемых браузерах. –

+0

Хорошо. Я отправил ответ в этой теме на эту проблему. В этом случае я не думаю, что проверка необходимости поддержки дросселирования необходима. Просто код для него, и если его там нет, его там нет. – Aaron

ответ

0

Как вы упомянули в вашем вопросе:

Платформы, которые поддерживают дроссельную и приостановку в настоящее время является следующим: Flash Player Desktop Mac и Windows, AIR Mobile и Android Flash Player. ...

И как вы пишете для Flash Player, так что вы должны просто проверить, если это Flash Player Desktop для Mac или Windows, чтобы знать, если дросселирование и пауза поддерживаются, и вы можете убедиться в том, что с помощью flash.system.Capabilities особенно Capabilities.version , Capabilities.os и Capabilities.playerType.

Надеюсь, что это поможет.

+0

Спасибо, я думаю, я должен проверить их индивидуально. Я не знал о «Capabilities». Это позволяет легко проверить :) –

+0

Я все еще не уверен, почему вы должны проверить. Если вы его кодируете, он будет работать, когда он там. Если его нет, это просто оптимизация производительности, которую вы не получите. Обычно не рекомендуется вводить код против «Capabilities», если нет реальной критической ошибки, и это единственный способ определить, существует ли ошибка (это очень редко в моем опыте), иначе, если ваша логика неправильная или условия меняются (браузер/player updates и т. д.) ваша логика сломается и, возможно, принесет больше вреда, чем пользы. – Aaron