Forums Développement Multimédia

Aller au contenu

Contenu de deuxsucres

Il y a 76 élément(s) pour deuxsucres (recherche limitée depuis 16-October 18)


Filtrer par type de contenu

Voir pour ce membre


#1140719 TLF, problème taille.

Posté par deuxsucres sur 24 February 2012 - 14:25 PM in Développement Actionscript

Bonjour,
Vous voulez changer la taille du conteneur ou la taille de la police ?



#1140718 En-tête d'une réponse

Posté par deuxsucres sur 24 February 2012 - 14:22 PM in Développement Actionscript

Je veux les entêtes HTTP de la réponse HTTP.

OK, ce n'est donc pas possible avec les classes Loader et URLLoder.

Merci pour vos réponses.



#1140640 Affichage XML non rafraichi

Posté par deuxsucres sur 23 February 2012 - 16:00 PM in Développement Actionscript

Je ne vois que deux possibilités :
  • soit vous appelez la page PHP en modifiant systématiquement son URL (voir la technique avec Date.time), ce qui donnerait : actualite.php?54215574.
  • sois vous modifiez les headers de retour de sorte qu'internet explorer recharge systématiquement la page.



#1140637 Affichage XML non rafraichi

Posté par deuxsucres sur 23 February 2012 - 15:46 PM in Développement Actionscript

Le Player Flash standalone utilise le cache d'internet explorer. Est-ce avec Internet Explorer que vous tester la page PHP ? Si non, est ce que le problème se produit en testant la page PHP avec internet explorer ?



#1140627 Affichage XML non rafraichi

Posté par deuxsucres sur 23 February 2012 - 14:48 PM in Développement Actionscript

Bonjour,

Si l'animation Flash est exécutée dans un navigateur, le FlashPlayer utilise le cache du navigateur. Essayez de désactiver le cache pour voir si le contenu est mis à jour dans l'animation.



#1140626 En-tête d'une réponse

Posté par deuxsucres sur 23 February 2012 - 14:44 PM in Développement Actionscript

Merci pour vos réponse.

Donc de base, sans utiliser AIR ni une autre librairie, le FlashPlayer permet pas de lire les headers de la réponse.
Car j'en ai besoin autant pour charger du texte que du binaire (Bitmap, SWF, MP3...)



#1140609 En-tête d'une réponse

Posté par deuxsucres sur 23 February 2012 - 11:56 AM in Développement Actionscript

Bonjour,

Est-il possible de lire les en-têtes de la réponse du serveur avec les objets de chargement de données tels que URLLoader ou Loader ?

Merci.



#1085166 [AS3]fscommand et recuperation de variable

Posté par deuxsucres sur 20 January 2012 - 10:02 AM in Développement Actionscript

C'est un exe Flash ? Si oui, a-t-il été compilé directement depuis Flash ou utilisez-vous un autre SWFtoEXE (comme Zinc)



#1085165 Array Multi et XML

Posté par deuxsucres sur 20 January 2012 - 10:00 AM in Développement Actionscript

Voir le messagepipoulito, le 18 January 2012 - 16:18 PM, dit :

(dois-je utiliser les {} ) ?

Non, je les ai juste placé pour indiquer que le stockage des infos enfant devaient se faire à cet endroit, sous forme d'objet de n'importe quel type.


p_child[i][j] = [this.childNodes[0].childNodes[i].childNodes[j].attributes.nom]
 

Attention, les crochets ([]) sont les opérateurs d'initialisation de tableau. En faisant cela, vous allez stocker dans p_child[j], un nouveau tableau peuplé du seul élément [i]this.childNodes[0].childNodes[i].childNodes[j].attributes.nom

Merci d'utiliser les balises de code lorsque vous affichez du code AS dans un message (bouton <> de l'éditeur).



#1085076 [AS3]fscommand et recuperation de variable

Posté par deuxsucres sur 18 January 2012 - 16:17 PM in Développement Actionscript

La méthode statique call de la classe ExternalInterface s'utilise comme fscommand :


ExternalInterface.call("nom_methode", parametre0, parametre1, ...)
 

Maintenant, cette méthode permet de communiquer avec le conteneur du SWF, je ne sais pas si elle permet de communiquer directement avec un autre SWF. Mais si les deux SWF sont sur une même page web, il est possible de les faire communiquer en passant par javascript (voir également la méthode addCallback())

La doc d'ExternalInterface : LiveDoc



#1085074 Array Multi et XML

Posté par deuxsucres sur 18 January 2012 - 16:07 PM in Développement Actionscript

Si je comprends bien, il faut que votre variable p_child soit un tableau que vous allez peupler avec les enfants :


for (i = 0; i < this.firstChild.childNodes.length; i++) {
  p_nom[i] = this.firstChild.childNodes[i].attributes.nom;
  p_theme[i] = this.firstChild.childNodes[i].attributes.theme;
  p_stheme[i] = this.firstChild.childNodes[i].attributes.stheme;
  p_code_theme[i] = this.firstChild.childNodes[i].attributes.code_theme;
  p_code_stheme[i] = this.firstChild.childNodes[i].attributes.code_stheme;
  p_texte[i] = this.firstChild.childNodes[i].attributes.texte;
  p_legende[i] = this.firstChild.childNodes[i].attributes.legende;
  p_video[i] = this.firstChild.childNodes[i].attributes.video;
  p_son[i] = this.firstChild.childNodes[i].attributes.son;
  p_image[i] = this.firstChild.childNodes[i].attributes.image;
 
  //Tableau des enfants
  p_child[i] = new Array() ;
 
  for (j=0;j<this.childNodes[0].childNodes[i].childNodes.length;j++){
    //Stockage
    p_child[i][j] = {} //Données de l'enfant
  }
}
 



#1083505 Transformation d'image en juxtaposition de lettres

Posté par deuxsucres sur 22 December 2011 - 09:01 AM in Développement Actionscript

Salut,

Ça me fait penser au blog de nicoptere, et à cet article en particulier : http://fr.nicoptere.net/?m=200711

Ça aide ?



#1083383 Test de sécuritée

Posté par deuxsucres sur 20 December 2011 - 13:44 PM in AS3

Voir le messageBadwolf, le 20 December 2011 - 11:21 AM, dit :

encore faudrait-il connaitre les noms des variables $_POST utlisés au sein du script PHP.

Il suffit d'utiliser firebug ou tout autre outil de développement intégré au navigateur pour voir les requêtes faites au serveur et donc obtenir les noms des paramètres et voir s'ils sont passés en POST ou en GET.



#1083325 Test de sécuritée

Posté par deuxsucres sur 19 December 2011 - 17:47 PM in AS3

Voir le messageBadwolf, le 19 December 2011 - 16:56 PM, dit :

Vu qu'on ne peut pas saisir de quotes (simple ou double), il est impossible de faire des injections SQL.

Même si les champs texte Flash sont protégés, on peut sans passer par le jeux générer une requête qui va inclure des quotes. Il faut donc protéger les appels SQL au niveau du seveur.

D'une manière générale, toutes les requêtes faites depuis flash peuvent être faites depuis une autre application. Il est bien de faire des vérification depuis Flash pour éviter des requêtes inutiles (longueur login, chaine vide...) mais ces vérifications doivent également être faites coté serveur.



#1083312 Test de sécuritée

Posté par deuxsucres sur 19 December 2011 - 16:50 PM in AS3

Salut,

Je n'arrive pas a créer de compte pour commencer à jouer... mais j'ai réussi a rentrer en me loguant avec un pseudo et un password vides...

Il n'y a pas de retour utilisateur sur les écrans de login et de création de compte. Aucune info comme quoi le login et/ou le mot de passe ne sont pas valides...



#1083039 Potentiomètre iPhone !!!

Posté par deuxsucres sur 15 December 2011 - 09:05 AM in Développement Actionscript

Suite à une erreur de manipulation, j'ai validé ma réponse incomplète... que je ne peux pas modifier. voici donc la suite :

Ne pas tenir compte de l'extrait de code précédent. Celui-ci le remplace.


//Valeur temps
var _time:Number ;

//Fonction de mise à jour de l'affichage
function rafraichir(e:Event) {
  mc_timer.text = String(time) ;
  potentiometre.rotation = (time * 12) ;
}
 

Faites varier _time et la fonction rafraichir s'occupera de mettre à jour l'affichage.



#1083037 Potentiomètre iPhone !!!

Posté par deuxsucres sur 15 December 2011 - 08:50 AM in Développement Actionscript

Bonjour,

L'affichage doit être une représentation d'une valeur, il ne doit pas stocker la valeur. Dans votre code, vous vous basez sur la position du potentiomètre pour déterminer la valeur temps, ce doit être l'inverse : c'est le potentiomètre qui doit se baser sur la valeur temps pour s'afficher correctement. Votre code devrait ressembler à quelque chose comme ça :



var _time:Number ;

function rafraichir(e:Event) {
potentiometre.rotation
}


 



#1082862 Editer un xml

Posté par deuxsucres sur 13 December 2011 - 08:52 AM in Développement Actionscript

OK, merci pour l'info. Et effectivement, faut le trouver.



#1082825 Editer un xml

Posté par deuxsucres sur 12 December 2011 - 17:52 PM in Développement Actionscript

Pour modifier un noeud, il suffit de l'appeler comme une propriété :
monXml.monNoeud = "nouvelle valeur" ;
ou pour les attributs :
monXml.@monAttribut = "nouvelle valeur" ;

Pour supprimer un noeud ou un attribut... aucune idée, je ne le fait jamais.

Une remarque : il est important d'utiliser la méthode appendChild pour ajouter un noeud, que ce soit un noeud texte ou un noeud complexe, car la méthode appendChild gère les XMLEntities.

Il est possible de faire :

var monContenu:String = "Contenu" ;
var monXml:XML = new XML("<test>" + monContenu + "</test>") ;
trace(monXml.toXMLString()) ; // <test>monContenu</test>
 

Mais si monContenu contient un caractère interdit (& ou < ou >), une exception sera levée. Alors que si l'on utilise la méthode appendChild, ces caractères seront automatiquement transformés en XMLEntities : &amp; ou &lt; ou &gt; :


var monContenu:String = "Contenu interdit & < > !" ;
var monXml:XML = new XML("<test />") ;
monXml.appendChild(monContenu) ;
trace(monXml.toXMLString()) ; // <test>Contenu interdit & < > !</test>
 

Il est possible d'initialiser un XML avec le littéral <>, sans faire new XML() (comme avec le littéral [] pour un tableau) :
var node:XML = <commentaire /> ;

La doc Adobe sur l'approche E4X pour le traitement des XML est très bien faite. Il y a plein de choses à apprendre.



#1082662 Editer un xml

Posté par deuxsucres sur 09 December 2011 - 11:29 AM in Développement Actionscript

Bonjour,

Il faut utiliser les classes XML et XMLList. Pour ajouter un nœud, il faut utiliser la méthode appendChild() et ce pour ajouter un noeud complexe ou un noeud texte. En admettant que ma variable data de type XML est le contenu XML chargé, pour ajouter un nœud :


//Création du noeud commentaire et ajout de l'attribut id
var node:XML = new XML("<commentaire />") ;
node.@id = "4" ;

//Ajout du noeud temps
var innerNode:XML = new XML("<temps/>") ;
innerNode.appendChild("47") ;
node.appendChild(innerNode) ;

//Ajout du noeud pin
innerNode = new XML("<pin/>") ;
innerNode.appendChild("145") ;
node.appendChild(innerNode) ;

//Ajout des autres noeuds
//...

//Ajout du noeud commentaire au XML data
data.appendChild(node) ;
 



#1082542 Conversion ISO vers UTF8

Posté par deuxsucres sur 07 December 2011 - 15:02 PM in Développement Actionscript

Je n'avais jamais fait attention à cette méthode. Merci.



#1082486 • Ouvrir fenêtre HTML+passer variable (Depuis Flash AS3)

Posté par deuxsucres sur 06 December 2011 - 15:45 PM in Intégration

Bonjour,

Deux idées :
  • Si vous ouvrez une nouvelle fenêtre, il faudra faire une requête qui sera traitée par le serveur. Cette requête peut contenir les informations utiles à l'affichage de la bonne image.
  • Avec du javascript : si la fenêtre ouverte est une popUp, les références aux fenêtres sont accessibles en javascript, les pages peuvent donc communiquer.



#1082484 Problème lors de l'exportation quicktime

Posté par deuxsucres sur 06 December 2011 - 15:38 PM in Animer avec Flash

Bonjour,

Avez-vous essayez d'exporter depuis flash CS3 dans un autre format que QuickTime ? Le problème persiste-t-il ?
J'essaierai d'exporter dans un autre format, dans une bonne qualité peu compressée. J'utiliserai ensuite un autre logiciel pour encoder la vidéo au format QuickTime.



#1082483 Conversion ISO vers UTF8

Posté par deuxsucres sur 06 December 2011 - 15:36 PM in Développement Actionscript

Bonjour,

Je ne crois pas qu'il existe de fonction en AS3 pour faire cela. Il est possible de demander à Flash d'interpréter les fichiers texte externes dans le charset du système d'exploitation, mais en interne le traitement des caractères se fera toujours en unicode. Voir flash.system.System.useCodePage.



#1082481 pb de texte

Posté par deuxsucres sur 06 December 2011 - 15:30 PM in Animer avec Flash

Bonjour,

Si j'ai bien compris, il vous faut récupérer le contenu texte des champs de saisie de texte prénom et nom et le fournir au textArea :


textArea.text = prenom.text + " " + nom.text ;
 



#1082480 Problème de sandBox

Posté par deuxsucres sur 06 December 2011 - 15:26 PM in Développement Actionscript

Bonjour,

Le fichier crossdomain doit être à la racine du domaine (et non du serveur) sur lequel est stocké le SWF à charger. Pour info, l'emplacement du fichier crossdomain peut-être paramétré.

Concernant la méthode AllowDomain de la classe Security, c'est dangereux de spécifier tous les domaine. Si vous connaissez les domaines depuis lesquels vous chargez des données, préférez définir chaque domaine plutôt que de tous les autoriser.



#1081990 droits d'auteur sur développement

Posté par deuxsucres sur 28 November 2011 - 17:22 PM in Café

Alors ce n'est pas à vous de gérer le problème, mais au prestataire qui a vendu la borne (votre client donc). Le musée doit se tourner vers votre client qui doit se tourner vers vous.

Si votre client a livré le produit au musée, c'est donc qu'il a estimé qu'il était prêt à être mis en production, vous devez donc être payé. Libre à votre client de se tourner vers vous pour faire le SAV ou vers un autre prestataire (sous réserve que vous ayez vendu les sources à votre client).



#1081988 droits d'auteur sur développement

Posté par deuxsucres sur 28 November 2011 - 16:47 PM in Café

Bonjour,

Dans votre situation, c'est à dire sans contrat écrit, il va être compliqué de faire valoir vos droits. Le problème est que de professionnel à professionnel, il n'y a pas de loi cadre, c'est aux partiesde définir les règles de paiement, les prestations fournies, et comment gérer le service après vente.

Mais on peut partir du principe que si vous avez livré tout ce qui était prévu dans le contrat oral, que le client a acceptée la version livrée et l'a mise en production, le solde doit être payé. S'il n'a pas payer le solde, il n'a pas le droit de l'utiliser.
Le dysfonctionnement doit être pris en charge gratuitement dans le cadre d'un service après vente et le client doit vous fournir toutes les informations utiles à la réparation ou vous laisser tester la borne le temps qu'il faudra.

Le meilleur moyen de se protéger est un contrat rédigé par un avocat d'affaires. C'est un peu couteux, mais lorsque ce genre de pépin arrive, toutes les procédures sont déjà prévues. Il n'y a plus qu'à les suivre pour être payer/obtenir un produit exempt de défaut.

Le musée est-il votre client direct ou étiez-vous sous-traitant ?



#1081781 Injections Mysql

Posté par deuxsucres sur 25 November 2011 - 09:07 AM in AS3

Citation

les pirates ne peuvent lire que les données echangée d'un script a l'autre, ils ne peuvent pas lire le script directement

Effectivement, les données échangées entre le serveur et Flash sont lisibles. Maintenant, comme dit plus haut, si le serveur PHP est bien configuré/sécurisé, le script ne peut pas être lisible. Il n'en va pas de même du script dans le l'animation Flash, car le SWF peut-être décompilé.

Citation

Donc si je code mes données transférées dans le flash, puis que je les décode dans le php, ils ne pourront rien faire avant d'avoir trouvé le décodeur

Oui. Et vous pouvez (devez) également coder les réponses du serveur aux requêtes de Flash. (Je pousse un peu loin) Coder toutes les informations qui transitent entre le serveur et Flash permettent d'éviter la détection de mots-clés facilitant le décodage. Exemple :

Flash récupère auprès du serveurs des informations sur l'utilisateur en cours, la session, le score précédent... Ces données sont en clair (format XML pour l'exemple) :
<answer userid="14" sessionid="24" lastscore="68" />

On peut imaginer que pour transmettre le nouveau score, le Flash doit fournir l'id utilisateur et le numéro de session dans sa requête. Donc si Flash fait une requête au serveur, même codée du genre requete.php?command="A45DS896DDFS89", on peut estimer que cette chaine de caractères contient les informations 14 et 24.



#1081744 Problème de chargement de swf dans un clip

Posté par deuxsucres sur 24 November 2011 - 15:57 PM in Animer avec Flash

Vous n'appelez les bons fichiers : vous appelez portfolio.swf au lieu de Portfolio.swf. Ça fonctionne en local sous Windows car Windows n'est pas sensible à la casse pour tout ce qui est nom de fichier/dossier, hors linux est sensible à la casse : portfolio.swf et Portfolio.swf sont deux fichiers différents.

Utilisez des outils de débogage intégrés aux navigateur tel que Firebug pour Firefox, les outils de développement pour IE ou DragonFly pour Opera, regardez la liste des éléments chargés dans l'onglet réseau. Vous verrez tout de suite que les deux fichiers swf portfolio.swf et biographie.swf n'existent pas sur le serveur.



#1081590 Gestion de classe

Posté par deuxsucres sur 22 November 2011 - 20:28 PM in Développement Actionscript

Oui, c'est tout a fait cela si vous utilisez les paramètres par défaut de l'objet URLRequest transmis à l'objet Loader. La classe utilisée est celle de l'application principale.

Regardez la documentation des classes URLRequest et ApplicationDomain pour savoir comment charger des SWF dans des domaines d'application différents et ainsi gérer l'utilisation drs classes.

Sinon, pour éviter ce fonctionnement, vous pouvez placer les classes dans des packages différents.



#1081518 Vos avis ? Episode numero 2

Posté par deuxsucres sur 22 November 2011 - 09:07 AM in Vos créations et découvertes

Peux-tu vectoriser tous les éléments graphiques ? Tu gagneras en poids et en rapidité/qualité d'affichage.

J'ai remarqué que l’anticrénelage de certains textes n'était pas activé : les textes dans les fenêtres d'amélioration des usines.

Les textes des quantités de matière première en bas de l'écran sont sélectionnables, est-ce normal ?



#1081342 Injections Mysql

Posté par deuxsucres sur 18 November 2011 - 12:02 PM in AS3

Tout à fait, déjà s'assurer que la communication Flash <-> Serveur ne peut pas être simulée.

Si ce point là est en place, 80% du boulot est fait. Tu pourras mieux estimer le niveau de sécurité nécessaire dans le code actionScript ensuite.



#1081316 Injections Mysql

Posté par deuxsucres sur 18 November 2011 - 09:27 AM in AS3

Il faut utiliser des méthodes d'offuscation de code. Faire une recherche sur les termes obfuscation et actionscript ou encrypt et actionscript. Voici une article général : Obfuscation sur developpez

Il faut estimer le risque de tomber sur quelqu'un qui prendra la peine de cracker l'application et déterminer en fonction le temps maximum à passer sur le développement du système de cryptage.

Une fois le code offusqué, il est rendu illisible et il est donc difficile d'en faire la maintenance.



#1081293 Injections Mysql

Posté par deuxsucres sur 17 November 2011 - 22:14 PM in AS3

Si le script PHP est bien codé et que le serveur est bien protégé, personne ne pourra voir le code PHP. Il n'en va pas de même du Flash qui peut être décompilé.
Il faut donc rendre illisible le code actionscript.

En tout cas, si tu as besoin te tester ta méthode de cryptage, on est là :P



#1081179 Injections Mysql

Posté par deuxsucres sur 17 November 2011 - 08:56 AM in AS3

Vu qu'il est possible d'imiter les requêtes du flash vers le serveur, ça ne sert à rien de protéger coté Flash. La protection contre le SQL injection ne peut être efficace que si elle est positionnée coté serveur. Bien entendu, il est préférable de s'assurer que les données sont bien formées également dans le Flash afin d'éviter des requêtes inutiles.

Pour se protéger du SQL injection, il faut s'assurer que, pour toute requête SQL, chaque donnée soit au bon format, qu'elle soit cotée correctement et que les caractères de contrôle SQL soient bien échappés (notamment les apostrophes).

Ensuite, pour ce que te dis Logic à savoir se mettre un super score et créer pleins d'utilisateurs... c'est à toi de trouver un moyen coté serveur de t'assurer que la requête provient bien de ton Flash avant de valider une opération.

Dans les grandes lignes, l'idée est d'ajouter un code dans les données transmises par Flash au serveur. Le serveur vérifie la présence et la validité de ce code. Le code est bon, l'opération est validée. Le code n'est pas bon, l'opération est rejetée.



#1081159 Position du curseur dans Textflow

Posté par deuxsucres sur 16 November 2011 - 20:25 PM in RIA: Flash Builder & AIR

La scrollBar ne détecte pas la position du curseur, elle base ses calculs sur les hauteurs de lignes, or il est très facile d'obtenir la hauteur d'une ligne et l'index de ligne sur laquelle est positionné la position active du curseur.

Obtenir la position exacte du curseur en x et y me semble beaucoup plus compliqué (voir l'exemple).



#1081135 Position du curseur dans Textflow

Posté par deuxsucres sur 16 November 2011 - 18:05 PM in RIA: Flash Builder & AIR

Bonjour,

J'ai trouvé une méthode mais je ne garantie pas quelle fonctionne partout.

L'idée est de trouver l'objet graphique d'affichage de la ligne sélectionnée pour obtenir la position en y de la sélection, puis de trouver la position x de la sélection dans cette ligne :


/**
 * Déclenché lorsque la sélection change.
 */

private function _selectionChangeHandler(event:SelectionEvent):void {
  //Récupère la sélection en cours
  var selectionState:SelectionState = _editManager.getSelectionState() ;
 
  //Récupère auprès du composer la ligne de la sélection
  var textFlowLine:TextFlowLine = _textFlow.flowComposer.findLineAtPosition(selectionState.activePosition) ;
 
  //Récupère l'objet d'affichage de la ligne
  //(c'est la position y = 0 de la ligne qui sera utilisée, cette position correspond à la position de la baseline)
  var textLine:TextLine = textFlowLine.getTextLine(true) ;
 
  //Détermine la position de la sélection dans la ligne
  var selectionPosition:int = selectionState.activePosition - textLine.textBlockBeginIndex ;

  //Obtient la position graphique de la sélection dans la ligne
  //(c'est la position en x de la sélection qui sera utilisée)
  var selectiongraphics:Rectangle = textLine.getAtomBounds(selectionPosition) ;
 
  //Convertit la position graphique au niveau globale
  var globalPosition:Point = textLine.localToGlobal(new Point(selectiongraphics.x, 0)) ;

 

Je suis très curieux de savoir s'il y a une autre méthode.



#1081120 mélange de pièce

Posté par deuxsucres sur 16 November 2011 - 17:03 PM in Développement Actionscript

Pour ton histoire de prix, le prix varie uniquement en fonction du nombre de couleur et/ou chaque couleur a un prix différent ?

Peux-tu nous expliquer un peu plus ? Un exemple de prix final.



#1080928 Synthaxe de test d'un array

Posté par deuxsucres sur 14 November 2011 - 16:35 PM in Développement Actionscript

Un seul à la fois...



#1080917 Synthaxe de test d'un array

Posté par deuxsucres sur 14 November 2011 - 14:26 PM in Développement Actionscript

Bonjour,

Utilisez la méthode indexOf() d'un tablaeu pour obtenir l'index de l'élément rechercher. Si l'index est inférieur à 0, c'est que le tableau ne contient pas l'élément :


if(array.indexOf(1) < 0) //do ...
 



#1080781 Masque sur swf chargé dynamiquement

Posté par deuxsucres sur 11 November 2011 - 16:58 PM in Animer avec Flash

Lorsque vous chargez un SWF, vous chargez en réalité un MovieClip et le stage du SWF chargé est substitué par le Stage du SWF chargeur. Hors, lorsque vous définissez les dimensions d'une animation, c'est les dimensions de son Stage que vous définissez.

Donc, comme vous ne récupérez que le MovieClip, les propriétés width et height s'appliquent à ce movieClip, donc à la largeur et à la hauteur de son contenu. Si ce MovieClip ne contient qu'un symbole de 10x10 positionné en x:1542 y:-485, les valeurs des propriétés width et height du MovieClip seront 10 et 10.

Pour le masque, je ne comprends pas pourquoi ça ne fonctionne pas.



#1080775 Masque sur swf chargé dynamiquement

Posté par deuxsucres sur 11 November 2011 - 14:51 PM in Animer avec Flash

Bonjour,

Avez-vous essayé d'ajouter le masque au parent qui contient le movieClip chargé dynamiquement, de sorte que le movieClip et le masque aient le même parent ?



#1080680 RichEditorText

Posté par deuxsucres sur 10 November 2011 - 13:37 PM in RIA: Flash Builder & AIR

Le contenu doit être défini dans une balise de propriété enfant et non directement comme enfant. Regarde les exemples dans la doc du composant RichTextEditor pour voir comment faire.



#1080663 mélange de pièce

Posté par deuxsucres sur 10 November 2011 - 10:19 AM in Développement Actionscript

Je suis d'accord avec Dldler, le client ne se rend pas compte du problème. Peut-être qu'en le mettant devant ces responsabilités il changera peut-être d'avis. Par exemple : lui demander de créer une référence unique par produit pour que tu puisses lui indiquer clairement quel variante est sélectionnée/commandée. Quand il va devoir créer ses 165324574 références, je pense qu'il changera d'avis. (Déjà fait, ça fonctionne :smile:)

Sinon, est-il possible de montrer à l’utilisateur 16 variantes seulement, avec un bouton lui permettant d'afficher d'autres variantes. Mais ça ne te fais plus que 16 variantes à calculer à chaque clique. Tu peux du coup le faire en mémoire.

Sinon, voici l'algorithme dont je parlai hier pour trouver toutes les possibilités (d'ailleurs ce n'est pas un arbre des possibilités, mais un algorithme de combinaison).

On part du principe que le nombre de couleurs est en fait limité par le nombre de sélecteurs. Ensuite, on construit un tableau à deux dimensions avec en x les combinaisons, et en y les sélecteur. La valeur étant la couleur. Pour 3 pièces et 2 sélecteurs (A,B) on obtient ce tableau là :

AAA
AAB
ABA
ABB
BAA
BAB
BBA
BBB

On remplit le tableau par colonne, on distribue la couleurs en x blocs de taille n :
Pour la 1re colonne, il y a 2 blocs de taille 4, pour la 2e colonne, il y a 4 blocs de taille 2 et pour la 3e colonne, il y a 8 blocs de taille 1.

J'ai ajouter des traces pour afficher le nombre de résultat et le tableau final. Mais attention, le nombre de combinaison explose très vite ! Amateur de crashage de navigateur et de player Flash, faites vous plaisir :mrgreen:.


//A faire varier
var selecteurs:uint = 3 ;
var pieces:uint = 4 ;

//Nombre de résultats
var numResults:uint = Math.pow(selecteurs, pieces) ;

//Tableau de stockage des résultats, tableau à 2 dimensions
var results:Array = new Array() ;
var i:uint ;

for (i = 0 ; i < numResults ; i++) {
  results[i] = new Array(pieces) ;
}

//Calcul des combinaisons
for (i = 0 ; i < pieces ; i++) {
       
  var tailleBlock:uint = Math.pow(selecteurs, pieces-(i+1)) ;
  var numBlock:uint = numResults / tailleBlock ;

  var currentSelecteur:uint = 0 ;
  var compteur:uint = 0 ;

  for (var k:uint = 0 ; k < numBlock ; k++) {
    for (var l:uint = 0 ; l < tailleBlock ; l++) {
      results[compteur][i] = currentSelecteur ;
      compteur++ ;
    }
                                               
    currentSelecteur++ ;
    if(currentSelecteur >= selecteurs) currentSelecteur = 0 ;
  }
}

trace("Nombre de résultats :", numResults) ;

for (i = 0 ; i < numResults ; i++) {
  trace(results[i]) ;
}

 

Pour afficher les résultats dans Flash, je ne ferai pas une image par combinaisons, mais une image transparente par pièce pour chaque couleur. Je superposerai les images de chaque pièce qui compose la montre pour obtenir le résultat visuel. Ce qui ne te fais plus que nbrCouleur*nbr de pièces PNG transparent à faire.



#1080621 mélange de pièce

Posté par deuxsucres sur 09 November 2011 - 19:08 PM in Développement Actionscript

Si j'ai bien compris, ce n'est pas le nombre de couleurs qui importe, mais de sélecteurs. Un sélecteur peut effectivement prendre n couleurs, mais au final on ne colorie la pièce que de x sélecteurs.

Le nombre de possibilités est donc nbrSélecteurActif^nbrPièces. Ce qui pour une montre de 6 pièces et 3 sélecteurs, fait quand même 729 possibilités... tu veux toujours faire les jpg :D ?



#1080615 mélange de pièce

Posté par deuxsucres sur 09 November 2011 - 18:06 PM in Développement Actionscript

AYÉÉÉÉÉÉÉ... j'ai compris !

Il faut faire un arbre des possibilités. Chaque sélecteur devient un tableau des couleurs possibles. Pour faire simple, on va prendre 3 sélecteurs de 2 couleurs, voici les 3 tableaux [AB], [AB], [AB] et pour avoir toutes les possibilités, il faut pour chaque élément du premier tableau, le combiné avec chaque élément du second tableau qui se combine avec chaque élément du troisième tableau...

Il faut trouver un algorithme de parcours d'arbre de possibilités. J'en ai un en tête mais à mon avis, y'a beaucoup plus simple et efficace. Si j'ai un peu de temps, je posterai mon idée.



#1080596 mélange de pièce

Posté par deuxsucres sur 09 November 2011 - 16:23 PM in Développement Actionscript

j'ai beau relire et relire... je pane rien...

Peux tu nous montrer une esquisse de l'interface, que l'on comprenne ce qu'est un sélecteur, un objet ?



#1080545 communication entre swf

Posté par deuxsucres sur 09 November 2011 - 09:27 AM in Développement Actionscript

Les évènements fournissent généralement des infos utiles. C'est le cas de l'évènement ProgressEvent qui fournit deux propriétés bytesLoaded et bytesTotal. Pas besoin donc d'aller les rechercher dans le contentLoaderInfo.

Pour obtenir l'évènement COMPLETE depuis le SWF racine, il faut également le distribuer depuis le SWF conteneur, ce qui pourrai donner :


chargeurAnim.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, chargementAnimEnProgress);
chargeurAnim.contentLoaderInfo.addEventListener(Event.COMPLETE, chargementAnimComplet);

function chargementAnimEnProgress(evt:ProgressEvent) {
  dispatchEvent(new ProgressEvent(ProgressEvent.PROGRESS, false, evt.bytesLoaded, evt.bytesTotal));
}

function chargementAnimComplet(evt:Event) {
  dispatchEvent(new Event(Event.COMPLETE));
}
 

Pour écouter un évènement, il faut ajouter un écouteur, ce que fait la méthode addEventListener. Comme dans le cas du SWF conteneur, c'est directement le SWF qui va distribuer les évènements, on l'écoute directement (contrairement au SWF conteneur qui écoute contentLoaderInfo de chargeurAnim). Ce qui donne :


conteneur.addEventListener(ProgressEvent.PROGRESS, contentEnProgress);
conteneur.addEventListener(Event.COMPLETE, contentComplet);

function contentEnProgress(evt:ProgressEvent) {
  // Chargement des animations depuis le SWF conteneur en cours
  var tauxChargement:Number = evt.bytesLoaded / evt.bytesTotal ;
}

function contentComplet(evt:Event) {
  // Chargement des animations depuis le SWF conteneur terminé
}
 



#1080513 RichEditorText

Posté par deuxsucres sur 08 November 2011 - 18:12 PM in RIA: Flash Builder & AIR

Il faut utiliser un convertisseur de texte qui implémente ITextImporter et/ou ITextExporter. Il y en a déjà de disponible dans le package flashx.textLayout.conversion capables de convertir dans différents formats.