В итоге: опытным путем значением по умолчанию для параметра качества является «высокое», а не «автоматическое повышение».
Код, предоставленный Энди Ли, был хорошим началом, но на самом деле он не говорит вам, является ли настройка «высокой» или «высокой». Autohigh будет изменять качество фильма в режиме реального времени при изменении частоты кадров. Если частота кадров падает ниже определенного порога, время выполнения Flash изменит качество на «низкое».
Я использовал следующий фрагмент кода, в котором используется эвристика для определения того, является ли параметр «высоким» или «автоматически высоким», путем интенсивного рисования и ожидания качества, о котором сообщается на этапе перехода от «высокого» к «низкому». Если он не переходит, это означает, что качество высокое, а не высокое.
Выполнение этого кода в встраивании без указания параметра качества (поэтому он будет использовать значение по умолчанию) имело измеренное значение качества высокое (не autohigh) на следующих платформах:
ОС: Win XP, Win 7, OSX
Браузеры: IE6, IE7, IE8, FF3, FF3.5, Safari 3, Safari 4, Safari 4 в Windows XP
Версии Flash: 9.0.28, 9.0.124 и Flash 10 (выпуск, не отладочные версии)
Вот эксперимент:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete();">
<mx:Script>
<![CDATA[
import mx.containers.Box;
import mx.controls.Alert;
private var boxes:Array = [];
public function onCreationComplete():void {
this.qualityValue.text = this.systemManager.stage.quality;
for (var i:int = 0; i < 2500; i++) {
var box:Box = new Box();
box.width = 300;
box.height = 300;
box.x = 200 + i;
box.y = i;
this.addChild(box);
boxes.push(box);
}
}
private function onEnterFrame(event:Event):void {
for each (var box:Box in boxes)
box.setStyle("backgroundColor", Math.random() * 100000);
this.qualityValue.text = this.systemManager.stage.quality;
}
private function beginSlowdown():void {
this.systemManager.stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
]]>
</mx:Script>
<mx:VBox>
<mx:Label text="Quality:"></mx:Label>
<mx:Label id="qualityValue"></mx:Label>
<mx:Button click="beginSlowdown()" label="Begin slowdown"></mx:Button>
<mx:Label id="output"></mx:Label>
</mx:VBox>
</mx:Application>