En résumé: de façon empirique, la valeur par défaut du paramètre de qualité est « élevée », et non « autohigh ».
Le code fourni par Andi Li était un bon début, mais il ne vous dit pas si le paramètre est "élevé" ou "autohigh". Autohigh va modifier la qualité du film en temps réel à mesure que le framerate change. Si le framerate tombe en dessous d'un certain seuil, le temps d'exécution de Flash changera la qualité à "bas". J'ai utilisé l'extrait de code suivant qui utilise une heuristique pour détecter si le paramètre est "haut" ou "autohigh" en dessinant fortement et en attendant que la qualité signalée par la transition passe de "haut" à "bas". Si cela ne fait pas de transition, cela signifie que la qualité est élevée, et non autohigh.
L'exécution de ce code dans un Embed sans paramètre de qualité spécifiée (il utilisera la valeur par défaut) avait une valeur de qualité mesurée de haute (non autohigh) sur les plates-formes suivantes:
OS: Win XP, Win 7, OSX
Navigateurs: IE6, IE7, IE8, FF3, FF3.5, Safari 3, Safari 4, Safari 4 sur Windows XP
Versions Flash: 9.0.28, 9.0.124 et Flash 10 (version non déboguée versions)
Voici l'expérience:
<?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>
pouvez-vous faire une applet flash qui imprime la valeur de ce paramètre sur la scène? – Jim