Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > Dynamique
Dynamique Flash Media Server / Flash Remoting
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 03/11/2006, 11h33   #1
Nouveau membre du Club
 
Inscription: août 2005
Localisation: Corse
Âge: 37
Messages: 61
Envoyer un message via AIM à DjPoke Envoyer un message via MSN à DjPoke
Par défaut flash plante lors d'un "send"

Salut à tous !

J'ai récupéré un script sur le web et adapté à mes besoin. Ce script permet de dessiner dans flash et de sauver un fichier "image.jpg" sur le serveur.
Mais j'aurai besoin de vos précieuses lumières à propos d'un plantage que j'obtiens quand j'emploie la methode send avec as2.

Voici mon script as2:

Code :
Stage.scaleMode = "noScale";
Stage.align = "";
import flash.display.BitmapData;
///////////////////////////////////////
var bitmap:BitmapData = new BitmapData(800, 600, false, 0xFFFFFFFF);
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.lineStyle(3, 0x000000, 100);
// dessiner
_root.onMouseDown = function() {
	mc.moveTo(_xmouse,_ymouse);
	_root.onEnterFrame = function() {
		mc.lineTo(_xmouse,_ymouse);
	}
}
_root.onMouseUp = function() {
	_root.onEnterFrame = null;
}
// bouton d'envoi vers php
btnsave.onRelease = function() {
	mc.attachBitmap(bitmap, this.getNextHighestDepth());
	lv = new LoadVars();
	lv.tab = new Array();
	for (i=0; i<600; i++) {
		for (j=0; j<800; j++) {
			lv.tab.push(bitmap.getPixel(j, i));
		}
	}
	lv.send("generejpg.php", "_blank", "POST");
	stop();
};
Je pense que le problème viens du as2, mais voici quand même le php :

Code :
<?php
header("Content-type: image/jpeg");
$lv=$_POST['tab'];
$temp=explode(",",$lv);
settype($temp[1],'integer');
$sortie = imagecreatetruecolor(800,600);
$k=0;
for($i=0;$i<600;$i++){
 for($j=0;$j<800;$j++){
   imagesetpixel($sortie,$j,$i,$temp[$k]);
   $k++;
}
}
imagejpeg($sortie,"image.jpg",100);
imagedestroy($sortie,);
?>
Est ce que quelqu'un vois la solution ?
DjPoke est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 13h09   #2
Rédacteur
 
Avatar de pyrrha
 
Inscription: août 2005
Localisation: 31 - Toulouse
Messages: 530
hello !

Peut tu préciser un peu le type de ton plantage ?
C'est le player flash qui bug ? le php qui ne recoit pas les données ?

Je crois qu'il est impossible de transferer un tableau directement de flash à php, car ce sont des langages diférents. Pour faire cela, il me semble qui vas te falloir utiliser flash remoting et amfphp.( sous reserve de dire une connerie )
pyrrha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 13h36   #3
Nouveau membre du Club
 
Inscription: août 2005
Localisation: Corse
Âge: 37
Messages: 61
Envoyer un message via AIM à DjPoke Envoyer un message via MSN à DjPoke
Salut !

En fait, je lance l'application en local avec easyphp, le flash marche, mais dès que j'appuie sur le bouton il se bloque enfoncé et une minute après le player me dit que l'application est en boucle infinie.

Pour ce qui est du passage de tableau, j'ai choppé le script sur le web et cela marchait. (il s'agissait d'une application de capture d'images webcam et d'affichage via le php). Maintenant, je n'ai pas fait gaffe si cela est compatible avec flash basic 8/as2.

En voici le lien...
http://jeanphiblog.media-box.net/dot...itmapdata2jpeg

Dernière modification par DjPoke ; 03/11/2006 à 13h49.
DjPoke est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 13h50   #4
Rédacteur
 
Avatar de pyrrha
 
Inscription: août 2005
Localisation: 31 - Toulouse
Messages: 530
ok, impec si ca fonctionne

Pour le bug
S'il te parle de boucle infinie, cavient sans doutes de ta boucle qui parse le tableau :

Code :
for (i=0; i<600; i++) {
		for (j=0; j<800; j++) {
			lv.tab.push(bitmap.getPixel(j, i));
		}
}
j'ai essayé avec juste :

Code :
for (i=0; i<600; i++) {
	for (j=0; j<800; j++) {
			trace(i*j);
	}
}
et pour flash, impossible de compiler, trop dur, après tout 600*800=480000...et actionscript est pas un langage tres puissant.

Jeanphi lui, il fait ca avec 160*120, et là ca marche
pyrrha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 13h54   #5
Nouveau membre du Club
 
Inscription: août 2005
Localisation: Corse
Âge: 37
Messages: 61
Envoyer un message via AIM à DjPoke Envoyer un message via MSN à DjPoke
Ca doit etre ça car à l'origine l'image est en 160x120.

Je vais jeter un coup d'oeil sur amfphp.

Merci de ton aide !
DjPoke est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h15.


Vos questions techniques : forum d'entraide Flash / Flex - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.