Carico SWF compilato per Flash 10 in Flash 9 SWF
-
22-08-2019 - |
Domanda
È possibile? Mi piacerebbe avere uno SWF principale che può essere visualizzato dagli utenti che o si dispone di Flash 9 o Flash 10 installato. All'interno di questo swf, un modulo separato verrà caricato solo per gli utenti che hanno installato Flash 10. Questo modulo userà qualche lampo avanzate 10 caratteristiche.
Soluzione
Certo, questo dovrebbe funzionare bene proprio come hai descritto esso. Fai la tua SWF base in Flash 9, fare un controllo di versione, e il carico eventualmente in un altro SWF pubblicato come 10. Flash renderà le funzionalità avanzate nel file SWF v10, indipendentemente dalla versione del file SWF è stato caricato in.
Basta ricordare che la versione è restituito come una stringa, in modo da essere sicuri di fare un parseInt
su di esso.
Altri suggerimenti
Questo dovrebbe funzionare bene a meno che non si sta cercando di utilizzare Flash 10 librerie specifiche in Flash SWF 10, che è probabilmente quello che stai facendo. Ho appena provato questo fuori, e ancora una volta Adobe delude nel loro design libreria di Flash / Flex e qualità.
Per esempio, stavo cercando di fare quanto segue
Ho un file SWF base di Flash 9 che caricherà un modulo Flash 10, se Flash Player dell'utente è di 10 o superiore. Questo modulo Flash 10 finisce utilizzando le librerie specifiche di Flash 10, come: 1) flash.net.NetStreamPlayOptions 2) flash.net.NetStreamPlayTransitions 3) NetStream.play2 Purtroppo, quando faccio questo, il runtime Flash si lamenta che non esiste una cosa come NetStreamPlayOptions, NetStreamPlayTransitions, e NetStream.play2. Ho cercato di aggirare questo duplicando i NetStreamPlayOptions e NetStreamPlayTransitions, che mi ha preso più lontano, ma purtroppo non sono riuscito a chiamare NetStream.play2, anche se io scaccio l'istanza NetStream come un oggetto.
Credo che funziona in questo modo perché la base SWF, che è Flash 9, utilizza il playerglobal.swc, destinato a Flash 9. Quando si carica il file SWF Flash 10, finisce ancora utilizzando il playerglobal.swc Flash 9 perché l'ambiente è stato inizializzato per Flash 9, che causa problemi con Flash 10 SWF. Devo ancora trovare un modo per aggirare questo.
Quando Flash è stato il passaggio da AS1 -> AS2 -.> AS3, aveva un senso perché non era compatibile, ma ora AS3 non può sempre caricare AS3, che a mio parere è molto deludente
E 'da molto tempo che non sviluppare applicazioni flash, ma ben ... questi sono i miei 2 centesimi:
Si potrebbe realmente bisogno di compilare il principale Flash a 10 e questo può essere un problema a causa del l'avviso di aggiornamento.
Questa è una possibile soluzione: http://codeofdoom.com / wordpress / 2009/02/09 / compilazione-to-flash-10-richiede-flash-9 /
Dopo aver fatto questo, penso che è facile rilevare la versione flash e caricamento dei diversi moduli SWF proprio come dici tu.