2010-01-10 6 views

Répondre

2

Les implémentations JavaScript et DOM des navigateurs Web actuels n'ont pas vraiment de bons mécanismes pour faire ce genre de chose.

Votre meilleur choix est que votre AS3 renvoie un URI de protocole DATA avec une version codée en base64 de l'image. Les navigateurs modernes (IE8 +, FF2 +, etc.) accepteront une URI de données comme SRC d'une étiquette IMG et rendront l'image qui y est contenue.

http://en.wikipedia.org/wiki/Data_URI_scheme

Vous devez avoir un expert AS3 expliquer comment transformer un octet tableau dans une chaîne base64, mais il ne peut pas être difficile.

+0

Non travaillé dans Alex

+0

) En effet, cela ne fonctionnera pas dans les anciennes versions de navigateur.Sans utiliser un URI de données, il n'y a pas d'autre moyen de le faire avec le DOM lui-même – EricLaw

+2

la conversion est: Prenez votre DisplayObject (Sprite/MovieClip/peu importe), convertissez-le en BitmapData (myBitmapData.draw (mySprite);), convertissez cela en PNG en utilisant AS3CoreLib d'adobe (myByteArray = PNGEncoder.encode (myBitmapData);), convertissez que pour Base64 en utilisant Base64Encoder de Flex (myBase64Encoder.encodeBytes (myByteArray);), puis l'exporter vers une fonction Javascript en utilisant ExternalInterface – Ender

4

Prenez votre DisplayObject (Sprite/MovieClip/whatever) et le convertir en un BitmapData:

myBitmapData.draw(mySprite); 

convertir en PNG en utilisant AS3CoreLib d'Adobe

myByteArray = PNGEncoder.encode(myBitmapData); 

convertir en base64 en utilisant Flex de Base64Encoder :

myBase64Encoder.encodeBytes(myByteArray); 

Puis export actionscript variables to Javascript en utilisant ExternalInterface.

+0

après plus de 3 ans ... et quelqu'un d'autre a trouvé ce post très utile !! merci beaucoup! ! –