2009-09-19 9 views
2

Lorsque vous intégrez des animations Flash, vous pouvez spécifier un paramètre indiquant la "qualité" de la lecture du film. Ceci affecte généralement si le moteur d'exécution de Flash anticipe vos formes et votre contenu vidéo. Plus d'infos here.Quelle est la valeur par défaut du paramètre "quality" dans les intégrations Flash?

Est-ce que quelqu'un connaît la valeur par défaut de ce paramètre? Adobe a négligé de documenter la valeur par défaut. Empiriquement, il semble être "haut" ou "autohigh" sur Mac et Windows (indépendant du navigateur), mais je ne peux pas discerner lequel.

+0

pouvez-vous faire une applet flash qui imprime la valeur de ce paramètre sur la scène? – Jim

Répondre

2

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> 
0

Selon SWFObject, par défaut est élevé (pour eux): http://blog.deconcept.com/swfobject/

Cette page ne précise pas: http://kb2.adobe.com/cps/127/tn_12701.html.

Une raison pour laquelle vous ne pouvez pas simplement spécifier quelle valeur vous voulez et supprimer tous les doutes? Je ne serais pas surpris si cela variait entre les navigateurs et les versions du lecteur (6-10). Mais alors, je ne serais pas surpris si c'était cohérent et non documenté aussi bien. :)

+0

Glenn, Je cherche à éviter de le rendre explicite pour deux raisons: 1) une contrainte de conception bizarre d'une partie externe, et 2) pour garder nos extraits d'embarquement allégés. –

0

Lorsque vous créez un projet Flex dans Flex Builder, le modèle html généré (index.template.html) indique que la qualité est élevée (à l'aide de Flex SDK 3.3).

Dans Flash CS4, la valeur par défaut dans le paramètre Publier (html) est également élevée. Comme Jim l'a dit, vous pouvez afficher la valeur de la qualité en temps d'exécution. Projet AS3 normal, vous pouvez utiliser stage.quality. Pour Flex, voici l'exemple:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init();"> 
    <mx:Script> 
     <![CDATA[ 
      import mx.controls.Alert; 
      public function init():void { 
       Alert.show(this.systemManager.stage.quality); 
      } 
     ]]> 
    </mx:Script> 
</mx:Application> 
+0

Merci Andy. Je vais prendre cet extrait et l'exécuter sur plusieurs plates-formes et combinaisons flash pour déterminer si Adobe a toujours été cohérent. –

+0

Rappelez-vous de nous dire le résultat :) –

Questions connexes