После обновления на 11 плеер мы поймали очень странный баг.
Данный баг проявлялся только в не-дебаг версии плеера. То есть когда запускаешь swf-ку в дебаговом 11-м плеере — все нормально, а когда в нормальном — ничего не работает.
Искать проблему пришлось с помощью ExternalInterface и JavaScript консоли браузера.
В итоге проблема оказалась в следующем. В не-дебаговой версии Flash Player 11.0.1.152 вот это выражение:
Внезапно стало равным -Infinity
А в дебаговой версии все оставалось в пределах нормальной картины мира: Infinity
Полный код примера для reproduce:
package {
import flash.display.Sprite;
import flash.external.ExternalInterface;
public class MagicWorld extends Sprite {
public function MagicWorld() {
ExternalInterface.call(«alert», «1/Math.abs(0) = » + (1/Math.abs(0)).toString());
}
}
}
Убедиться можно вот здесть: batsuev.com/habr/fp11/MagicWorld.html (открыть в дебаговом и не-дебаговом 11-м плеере)
Ссылка на bugreport: bugbase.adobe.com/index.cfm?event=bug&id=3011557
Немного фана:
1/0 //Infinity
1/Math.abs(0) //-Infinity
0 == Math.abs(0) //true
1/0 == 1/Math.abs(0) //false
Будьте бдительны с этим Adobe.
Данный баг проявлялся только в не-дебаг версии плеера. То есть когда запускаешь swf-ку в дебаговом 11-м плеере — все нормально, а когда в нормальном — ничего не работает.
Искать проблему пришлось с помощью ExternalInterface и JavaScript консоли браузера.
В итоге проблема оказалась в следующем. В не-дебаговой версии Flash Player 11.0.1.152 вот это выражение:
1/Math.abs(0)
Внезапно стало равным -Infinity
А в дебаговой версии все оставалось в пределах нормальной картины мира: Infinity
Полный код примера для reproduce:
package {
import flash.display.Sprite;
import flash.external.ExternalInterface;
public class MagicWorld extends Sprite {
public function MagicWorld() {
ExternalInterface.call(«alert», «1/Math.abs(0) = » + (1/Math.abs(0)).toString());
}
}
}
Убедиться можно вот здесть: batsuev.com/habr/fp11/MagicWorld.html (открыть в дебаговом и не-дебаговом 11-м плеере)
Ссылка на bugreport: bugbase.adobe.com/index.cfm?event=bug&id=3011557
Немного фана:
1/0 //Infinity
1/Math.abs(0) //-Infinity
0 == Math.abs(0) //true
1/0 == 1/Math.abs(0) //false
Будьте бдительны с этим Adobe.