2012-02-07 1 views
0

J'essaie de créer une application de création de personnage en utilisant Flash ActionScript 2. J'en ai fini avec les parties mobiles du personnage, mais ma principale préoccupation est de savoir comment enregistrer l'image en tant que jpeg/png. J'ai essayé de rechercher des tutoriels sur le net, mais la plupart suggéreraient d'utiliser php.comment enregistrer une image à partir de flash en utilisant actionscript 2.0?

Y at-il un moyen que je puisse enregistrer une image sans l'utilisation de php? Je voudrais enregistrer l'image de mes personnages en utilisant un bouton, et l'enregistrer directement sur mon PC.

+0

Votre première erreur était de le coder en AS2. Pourquoi?? Cela aussi dans Flash CS4, qui est plus AS3 que AS2 ?? Vous ne pouvez vraiment pas le faire en AS2, donc vous allez devoir porter votre code sur AS3 ou ne pas le faire en Flash –

Répondre

0

Non possible avec AS2. Pour enregistrer une image, vous devez l'écrire dans un format qui autorise des octets nuls (c'est-à-dire des octets de bits qui sont tous désactivés). Votre meilleure approche pour une séquence d'octets est une chaîne, mais null-byte la terminerait.

+0

Ouais, je pense que ça doit être une erreur de codage dans AS2. Je vais coder as3, avez-vous un tutoriel ou des liens qui pourraient en quelque sorte répondre à cette question? Changez la question déjà. – woninana

1

Vous pouvez créer un conteneur dans AS3 et charger votre application AS2 dans celui-ci. Vous pouvez donc utiliser le code AS3 dans ce conteneur pour enregistrer l'image dans votre PC. Faites-moi savoir si vous avez besoin d'aide à ce sujet.

Vous devez déployer les deux fichiers dans votre version. AS3 swf sera votre swf principal et ASF swf sera chargé dans celui-ci.

// Code

paquet

{

import asfiles.encoding.*; 

import flash.display.*; 
import flash.events.*; 
import flash.geom.*; 
import flash.net.*; 
import flash.utils.ByteArray; 

public class AS3Container extends MovieClip 
{ 

    public var myRequest:URLRequest; 
    public var l:Loader; 

    public function AS3Container() 
    { 
     myRequest = new URLRequest("scene.swf"); // load your AS2 swf 
     l = new Loader(); 
     l.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
     l.load(myRequest); 

     saveButton.enabled = false;   

     saveButton.addEventListener(MouseEvent.CLICK, saveHandler); 
    }// end function 

    public function onComplete(event:Event) 
    { 
     this.addChild(l); 
     l.width = stage.width; 
     l.height = stage.height; 
     saveButton.enabled = true; 

    }// end function 

    public function saveHandler(event:MouseEvent) : void 
    {      
     saveImage(l,"myImg.jpg"); 

    }// end function 

    public function saveImage(image:Loader, imageName:String) { 

      var _rect:Rectangle = null; 
      var _matrix:Matrix = null; 
      trace(image.x+","+image.y);    
      _rect = new Rectangle(image.width/2, image.height/2, image.width, image.height);     
      var jpgSource:BitmapData = new BitmapData(image.width, image.height); 
      jpgSource.draw(image, _matrix); 
      jpgEncoder = new JPEGEncoder(100); 
      var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);    
      var file:FileReference = new FileReference(); 
      file.save(jpgStream, imageName); 

    } 

} 

}

L'approche utilisée dans ce lien vous aidera à enregistrer à l'aide AS3 et PHP. http://subashflash.blogspot.in/2013/10/save-image-from-as2-project-using-as3.html.

+0

Ne fonctionnant plus, j'ai téléchargé le script mais ne montre aucun bouton de sauvegarde pour l'action! http://www.farshadghazanfari.com/demo/saveimg/save.html – Ghazanfari

Questions connexes