2010-12-12 3 views
1

Ich mag gerne wissen, ob es möglich ist, einige Stück Code nach Version des Flash Player in Actionscript 3.AS3: Aktivieren Sie Funktionen nach Flash Player Version

Lassen Sie uns aktivieren/deaktivieren sagen; Ich habe eine benutzerdefinierte Klasse customClass, die flash.media.Microphone verwendet. Die Microphone-Klasse verfügt über eine Eigenschaft isSupported, die für Flash Player Version 10.1 und höher (wie in der Dokumentation angegeben) verfügbar ist. Ich implementieren diese Eigenschaft in meinem Custom ... so:

ich so etwas wie dies benötigen (indem sie mit dem eingebauten in Capabilities.version Prüfung):

if (version >= 10.1) { 
    trace(_mic.isSupported); //this will throw an error if the debug version is not 10.1 or later 
} else { 
    doSmthElse(); 
} 

ist es eine Möglichkeit, dies zu tun?

Antwort

2

Dies ist der einzige Weg ist, weiß ich:

if (version >= 10.1) { 
    trace(_mic["isSupported"]); //this will throw an error if the debug version is not 10.1 or later 
} else { 
    doSmthElse(); 
} 

Mit der Konsole Zugang syntaxt Verifizierer wird nicht versuchen, ob die Methode oder Eigenschaft zu überprüfen, wird im Voraus definiert (zur Ladezeit, glaube ich). Ihr Code wird also nur zur Laufzeit ausgewertet, wenn er tatsächlich ausgeführt wird.

+0

danke..dies hilft zumindest .. Ich dachte auch, mit hasOwnProperty (..) zu überprüfen. –

+0

Ich nehme an, Sie könnten Sie Version in Javascript einchecken und verwenden Sie die ExternalInterface API, um eine Nachricht von der js in Flex, und verfügen über eine Switch-Case-Funktion zum Aktivieren/Deaktivieren von Features. – Ryan

+0

@ Brian Bischof. Ich schätze, du könntest das, aber das ist nur mehr Arbeit für keinen wirklichen Vorteil, denke ich. Das Problem ist nicht das Erkennen der aktuellen Version, die in Actionscript trivial ist. Das Problem besteht darin, dass der Verifizierer beim Laden des swf überprüft, ob die Eigenschaft definiert ist oder nicht (was von der Player-Version abhängt). Wenn Sie '_mic.isSupported' geschrieben haben, wird dies zu einem Fehler in der Version <10 führen, * ob Sie diesen Code tatsächlich ausführen oder nicht *. –