Forums Développement Multimédia

Aller au contenu

Contenu de pol2095

Il y a 120 élément(s) pour pol2095 (recherche limitée depuis 30-July 17)


Filtrer par type de contenu

Voir pour ce membre


#1169594 Mise à jour d'une l'application

Posté par pol2095 sur 18 December 2017 - 20:43 PM in Développement Actionscript

import ne se met pas dans une fonction
import flash.events.Event;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.net.URLRequest;
import flash.net.URLStream;
import flash.utils.ByteArray;
if(CONFIG::ANDROID)
{
   import com.chi.openWithDefaultApplication.OpenWithDefaultApplication;
}
var loader_apk:URLLoader;
page_maj.btn_maj.addEventListener(MouseEvent.CLICK, onClick);
function progressHandler(event:ProgressEvent):void
{
        var ratio:Number = event.bytesLoaded / event.bytesTotal;
        page_maj.msg.text = "Chargement " + Math.ceil(ratio * 100).toString() + "%";
}
function onClick(event:Event):void
{
        if(loader_apk) return;
               
        loader_apk = new URLLoader ();
        loader_apk.dataFormat = URLLoaderDataFormat.BINARY;
        loader_apk.addEventListener (ProgressEvent.PROGRESS, progressHandler);
        loader_apk.addEventListener(IOErrorEvent.IO_ERROR, onFailure);
        loader_apk.addEventListener(Event.COMPLETE, charge_apk);
        loader_apk.load( new URLRequest("http://mon_site/DEPFB.apk") );
}
function onFailure(event:IOErrorEvent):void
{
        event.target.removeEventListener(IOErrorEvent.IO_ERROR, onFailure);
        event.target.removeEventListener(Event.COMPLETE, charge_apk);
        trace("pas de connection !");
        loader_apk = null;
}
function charge_apk(event:Event):void
{
        event.target.removeEventListener(IOErrorEvent.IO_ERROR, onFailure);
        event.target.removeEventListener(Event.COMPLETE, charge_apk);
        var file:File = File.userDirectory.resolvePath("Download/mon_apk.apk");
        var fileStream:FileStream = new FileStream();
        fileStream.open(file, FileMode.UPDATE);
        fileStream.writeBytes(event.target.data);
        fileStream.close();
        trace("APK Téléchargée !");
        if(CONFIG::ANDROID)
        {
                OpenWithDefaultApplication.open.url(file.url);
        }
        loader_apk = null;
}



#1169589 Mise à jour d'une l'application

Posté par pol2095 sur 18 December 2017 - 19:29 PM in Développement Actionscript

essaie
CONFIG::ANDROID
{
        trace("ANDROID");
}
si le trace() fonctionne, il y a un pb

tu as bien créé la constante dans "Fichier" > "Paramètres d'ActionScript..." > "Configurer les constantes" (fait une capture d'écran de la boîte de dialogue) ?



#1169596 Mise à jour d'une l'application

Posté par pol2095 sur 18 December 2017 - 20:50 PM in Développement Actionscript

essaie avec if() pour voir



#1169599 Mise à jour d'une l'application

Posté par pol2095 sur 18 December 2017 - 21:20 PM in Développement Actionscript

c'est possible, il faut le sortir de la bibliothèque pour l'application Windows, puis le remettre pour la version Android je pense.



#1169570 Mise à jour d'une l'application

Posté par pol2095 sur 16 December 2017 - 13:13 PM in Développement Actionscript

Si ton application est sur Google Play, il gère les mises à jour automatiquement.



#1169601 Mise à jour d'une l'application

Posté par pol2095 sur 18 December 2017 - 21:53 PM in Développement Actionscript

Il génère automatiquement le fichier application.xml, c'est ça qui doit poser problème.
Soit tu grises les lignes, soit tu conserves quand même la constante de compilation conditionnelle.



#1169587 Mise à jour d'une l'application

Posté par pol2095 sur 18 December 2017 - 14:43 PM in Développement Actionscript

en utilisant la compilation conditionnelle, on peut gérer dans le même code une version pour Android et une pour Windows

il faut aller dans "Fichier" > "Paramètres d'ActionScript..." > "Configurer les constantes"
créer une constante "CONFIG::ANDROID"
quand tu compiles pour Android, tu mets la valeur sur true
quand tu compiles pour Windows, tu mets la valeur sur false

le code
CONFIG::ANDROID
{
        import com.chi.openWithDefaultApplication.OpenWithDefaultApplication;
}

CONFIG::ANDROID
{
        OpenWithDefaultApplication.open.url(file.url);
}



#1169591 Mise à jour d'une l'application

Posté par pol2095 sur 18 December 2017 - 20:32 PM in Développement Actionscript

ça a l'air correct

il faut voir le code



#1169575 Mise à jour d'une l'application

Posté par pol2095 sur 17 December 2017 - 10:05 AM in Développement Actionscript

Tu peux télécharger mon ane ici

pour l'utiliser

import com.chi.openWithDefaultApplication.OpenWithDefaultApplication;

OpenWithDefaultApplication.open.url(file.url);
 

à ajouter dans le fichier descripteur de l'application

<extensions>
        <extensionID>com.adobe.OpenWithDefaultApplicationExtension</extensionID>
</extensions>
 



#1169586 Mise à jour d'une l'application

Posté par pol2095 sur 18 December 2017 - 08:22 AM in Développement Actionscript

Normal c'est une extension pour Android, ça ne fonctionne que sous Android.
Une apk est conçu pour Android.



#1169572 Mise à jour d'une l'application

Posté par pol2095 sur 16 December 2017 - 15:15 PM in Développement Actionscript

Je ne pense pas qu'il y ait une classe dans Air qui gère cela.
Il va falloir la créer.
- vérifier la version
- télécharger le fichier apk avec "flash.net.URLLoader" puis enregistrer le fichier avec "flash.system.File" dans File.userDirectory.resolvePath("Download") par exemple
- il me semble que openWithDefaultApplication() ne fonctionne pas sur Android, il faudra créer une ane avec une classe Java équivalente (il faut que je la retrouve)
- fermer l'application

Ça devrait fonctionner



#1169577 Mise à jour d'une l'application

Posté par pol2095 sur 17 December 2017 - 11:45 AM in Développement Actionscript

Quel est le message d'erreur ?
Rajoute loader_apk.dataFormat = URLLoaderDataFormat.BINARY;



#1169574 Mise à jour d'une l'application

Posté par pol2095 sur 16 December 2017 - 19:40 PM in Développement Actionscript

dans l'évènement "complete" d'URLLoader

var file:File = File.userDirectory.resolvePath("Download/tonApp.apk");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.UPDATE);
fileStream.writeBytes(event.target.data);
fileStream.close();
 



#1169583 Mise à jour d'une l'application

Posté par pol2095 sur 17 December 2017 - 20:25 PM in Développement Actionscript

Il faut ajouter le fichier ane dans la bibliothèque comme un fichier swc.
https://help.adobe.c...314dff873a-7ffc



#1169581 Mise à jour d'une l'application

Posté par pol2095 sur 17 December 2017 - 17:58 PM in Développement Actionscript

pour ta première question :
var loader_apk:URLLoader;
function onClick(event:Event):void
{
        if(loader_apk) return; // évite de le lancer plusieurs fois
 
        loader_apk = new URLLoader ();
        loader_apk.dataFormat = URLLoaderDataFormat.BINARY;
        loader_apk.addEventListener(IOErrorEvent.IO_ERROR, onFailure);
        loader_apk.addEventListener(Event.COMPLETE, charge_apk);
        loader_apk.load( new URLRequest("http://mon_site/mon_apk.apk") ); // Où récupérer le fichier APK
}
function onFailure(event:IOErrorEvent):void
{
        event.target.removeEventListener(IOErrorEvent.IO_ERROR, onFailure);
        event.target.removeEventListener(Event.COMPLETE, charge_apk);
        trace("pas de connection !");
        loader_apk = null;
}
function charge_apk(event:Event):void
{
        event.target.removeEventListener(IOErrorEvent.IO_ERROR, onFailure);
        event.target.removeEventListener(Event.COMPLETE, charge_apk);
 
        var file:File = File.userDirectory.resolvePath("Download/mon_apk.apk"); // Où placer le fichier APK
        var fileStream:FileStream = new FileStream();
        try
        {
                fileStream.open(file, FileMode.UPDATE);
                fileStream.writeBytes(event.target.data);
        }
        catch(error:Error)
        {
                trace("problème lors de l'écriture du fichier !");
        }
        finally
        {
                fileStream.close();
                loader_apk = null;
        }
}

pour la seconde :
dans ton projet, il y a un fichier "application.xml", vérifie que ces lignes sont présentes, sinon il faut les ajouter.



#1169657 Code pour plusieurs clips

Posté par pol2095 sur 04 February 2018 - 16:11 PM in Développement Actionscript

Regarde dans les propriétés actionscript, il doit falloir renter un chemin de type "."



#1169660 Code pour plusieurs clips

Posté par pol2095 sur 04 February 2018 - 18:35 PM in Développement Actionscript

Regarde si dans Fichier > Paramètres avancés d'ActionScript 3.0 > onglet chemin source > il y a un dossier nommé "."

au début de ta classe il y a une erreur, c'est "import flash.display.MovieClip;" et non "import com.display.MyClip;", on va étendre

flash.display.MovieClip




#1169666 Code pour plusieurs clips

Posté par pol2095 sur 06 February 2018 - 09:37 AM in Développement Actionscript

Tu dois avoir du code qui traine sur la frame1 dans ton MovieCip peut-être ?



#1169656 Code pour plusieurs clips

Posté par pol2095 sur 04 February 2018 - 14:31 PM in Développement Actionscript

Joint une version allégée de ton dossier dans un zip pour tester



#1169668 Code pour plusieurs clips

Posté par pol2095 sur 06 February 2018 - 20:28 PM in Développement Actionscript

ça doit fonctionner avec ton code tel quel

peut-être des soucis avec mouseX qui sera relatif à ton clip et non au stage, à vérifier



#1169664 Code pour plusieurs clips

Posté par pol2095 sur 05 February 2018 - 23:11 PM in Développement Actionscript

c'est bizarre, une erreur à la ligne 97, mais la classe ne fait pas 97 lignes ?



#1169662 Code pour plusieurs clips

Posté par pol2095 sur 04 February 2018 - 20:42 PM in Développement Actionscript

Non, le point c'est bon, il ne faut rien toucher.

il faut juste remplacer dans ta classe "import com.display.MyClip;" par "import flash.display.MovieClip;"


ça drevrait corriger cette erreur

Citation

1017 : La définition de la classe de base MovieClip est introuvable.

5000 : La classe 'com.display.MyClip' doit être une sous-classe de 'flash.display.MovieClip', puisqu'elle est liée à un symbole de bibliothèque du type correspondant


j'ai remis en forme ton code

package com.display
{
  import flash.display.MovieClip;
 
  public class MyClip extends MovieClip
  {
    public var currentStep: Number;
    public var step: Number = 330;
    public var max: Number = 0;
    public var min: Number = -660;
    public var distMin: Number = 15;
    public var nextX: Number;
    public var startX: Number;
    public var offsetX: Number;
    public var moving: Boolean = false;
    public var smooth: Number = 0.30;
    public var mouseIsUp: Boolean = true;
   
    public function MyClip()
    {
          this.x = 0;
          currentStep = this.x;
          nextX = currentStep;
          this.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
    }
   
    public function onDown(e: MouseEvent): void
    {
          offsetX = this.mouseX;
          startX = mouseX;
          moving = true;
          mouseIsUp = false;
          if (!hasEventListener(Event.ENTER_FRAME)) addEventListener(Event.ENTER_FRAME, update);
          stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
          stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
    }
   
    public function onUp(e: MouseEvent): void
    {
          mouseIsUp = true;
          var dx: Number = mouseX - startX;
          if (dx < -distMin)
          {
            currentStep -= step;
            if (currentStep < min) currentStep = min;
          }
          else if (dx > distMin)
          {
            currentStep += step;
            if (currentStep > max) currentStep = max;
          }
          nextX = currentStep;
          stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
          stage.removeEventListener(MouseEvent.MOUSE_UP, onUp);
    }
   
    public function onMove(e: MouseEvent): void
    {
          nextX = mouseX - offsetX;
    }
   
    public function update(e: Event): void
    {
          if (moving)
          {
            this.x -= (this.x - nextX) * smooth;
            if (mouseIsUp && Math.abs(this.x - nextX) < 1)
            {
                  this.x = nextX;
                  moving = false;
                  removeEventListener(Event.ENTER_FRAME, update);
            }
          }
    }
  }
}



#1169634 Code pour plusieurs clips

Posté par pol2095 sur 26 January 2018 - 21:41 PM in Développement Actionscript

Tu peux étendre flash.display.MovieClip, créer dans cette classe les variables qui sont propres à tes MovieClips (currentStep, nextX, ...)
Tu places tes clips dans un Array.

Tu places une boucle dans tes écouteurs.




#1169653 Code pour plusieurs clips

Posté par pol2095 sur 04 February 2018 - 13:29 PM in Développement Actionscript

Le fla, il est où ?



#1169646 Code pour plusieurs clips

Posté par pol2095 sur 04 February 2018 - 00:11 AM in Développement Actionscript

Tu crées dans le dossier où se trouve ton fla un dossier "com", dedans tu crées un dossier "display", dedans tu crées un fichier "MyClip.as".
ensuite tu colles le code que je t'ai donné.
par exemple pour accéder à currentStep pour chaque clip que tu utilises dans ton fla
tab_pages[i].currentStep

si tu places ton code de départ dans cette classe, ça devrait fonctionner sans avoir besoin d'utiliser de boucles, il faudra remplacer "page_slider" par "this"



#1169644 Code pour plusieurs clips

Posté par pol2095 sur 03 February 2018 - 19:11 PM in Développement Actionscript

Il doit te donner le numéro de la ligne où se trouve l'erreur ?

as-tu créé une classe comme ceci :

package com.display
{
        import flash.display.MovieClip;
 
        public class MyClip extends MovieClip
        {
                public var currentStep :Number  = this.x;
         
                ...
        }
}

et cocher la case "Expoter pour actionscript" dans les propriétés de ton MovieClip, puis modifier la classe de base "flash.display.MovieClip" par "com.display.MyClip"

ça sera plus simple par la suite



#1169651 Code pour plusieurs clips

Posté par pol2095 sur 04 February 2018 - 12:44 PM in Développement Actionscript

Ce n'est pas bon, fais une copie écran de ton explorateur de fichiers au niveau de ton projet.



#1169648 Code pour plusieurs clips

Posté par pol2095 sur 04 February 2018 - 11:01 AM in Développement Actionscript

tu as bien créé les 2 dossiers "com" et "display" dans "com" ?

il faudrait voir l'arborescence de ton projet (dossiers et fichiers), il y a un pb, il ne trouve pas la classe



#1170391 Application et basse de données

Posté par pol2095 sur 02 March 2019 - 14:14 PM in Développement Actionscript

d'où sort le $data ???



#1170377 Application et basse de données

Posté par pol2095 sur 24 February 2019 - 08:28 AM in Développement Actionscript

Une fois la BDD activé, tu vas à l'adresse http://sql.free.fr (phpMyAdmin)
tu crées une table comme dans cet exemple
chez free c'est du php5 (le php7 c'est différent)
pour insérer une nouvelle ligne

$connexion_serveur=mysql_connect("sql.free.fr", "login", "mdp");
if ($connexion_serveur)
{
        //echo "Connexion serveur reussie";
}
else
{
        //echo "Connexion serveur ratée";
}
mysql_select_db("login") or die('Echec de la connexion à la base de donnée');

$sql = "INSERT INTO forum Personne (nom, prenom, age) VALUES ('".mysql_real_escape_string( $_POST['nom'] )."', '".mysql_real_escape_string( $_POST['prenom'] )."', '".mysql_real_escape_string( $_POST['age'] )."')";
$result = mysql_query($sql);
if( $result )
{
        echo "Modification effectuee";
}
else
{
        echo "Error";
}

après il existe d'autre commande pour lire la table : SELECT, mettre à jour : UPDATE...



#1170393 Application et basse de données

Posté par pol2095 sur 02 March 2019 - 20:27 PM in Développement Actionscript

en utilisant URLLoader

var request:URLRequest = new URLRequest("http://www.monsite.fr/mapage.php");
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.load(request);
function completeHandler(event:Event):void
{
        nom.text = event.target.data;
}

mais tu vas recevoir "nomprenomage", le plus simple serait de faire un seul echo avec du JSON ou du XML.

if( $req )
{
    $connexion=1; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
    $connexion=2; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}
echo '{"connexion":'.$connexion.', "nom":"'.$data['nom'].'", "prenom":"'.$data['prenom'].'", "age":'.$data['age'].'}';

et dans flash

function completeHandler(event:Event):void
{
        var json:Object = JSON.parse( event.target.data );
        nom.text = json.nom;
}



#1170379 Application et basse de données

Posté par pol2095 sur 25 February 2019 - 10:43 AM in Développement Actionscript

Il y a un point dans ton email free ?



#1170401 Application et basse de données

Posté par pol2095 sur 03 March 2019 - 11:16 AM in Développement Actionscript

c'est normal, tu ne cherches pas une erreur de connexion à la BDD mais un nom qui n'est pas dans la BDD
$num_rows = mysql_num_rows($req);
if( $num_rows != 0 )
{
        $connexion=1; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
        $connexion=2; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}



#1170403 Application et basse de données

Posté par pol2095 sur 03 March 2019 - 13:47 PM in Développement Actionscript

$num_rows = mysql_num_rows($req);
mysql_free_result ($req);
mysql_close ();
if( $num_rows != 0 )
{
    $connexion=1; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
    $connexion=2; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}



#1170376 Application et basse de données

Posté par pol2095 sur 23 February 2019 - 11:19 AM in Développement Actionscript

Chaque page perso free est fourni avec une BDD MySQL qu'il faut activer dans les paramètres du compte.



#1170399 Application et basse de données

Posté par pol2095 sur 03 March 2019 - 09:34 AM in Développement Actionscript

utilises ce code en php, j'ai modifié age
if( $req )
{
                $connexion=1; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
                $connexion=2; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}
echo '{"connexion":'.$connexion.', "nom":"'.$data['nom'].'", "prenom":"'.$data['prenom'].'", "age":"'.$data['age'].'"}';

dans flash, il faut faire
function completeHandler(event:Event):void
{
        var json:Object = JSON.parse( event.target.data );
 
        if( json.connexion == 1 )
        {
                info_send.text = "Le transfert des données est réussi !"; // ici ça fonctionne
                nom.text = json.nom;
                ...
        }
        else
        {
                info_send.text = "Le transfert des données a échouée !"; // ici ça ne fonctionne pas car aucun retour mis à part le message d'erreur dans la sortie
        }
}



#1170397 Application et basse de données

Posté par pol2095 sur 03 March 2019 - 08:21 AM in Développement Actionscript

Je l'ai placé au début du JSON, json.connexion
essaie
if( $req )
{
        $connexion=1; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
        $connexion=2; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}
echo '{"connexion":'.$connexion.', "nom":"'.$data['nom'].'", "prenom":"'.$data['prenom'].'", "age":"'.$data['age'].'"}';



#1170395 Application et basse de données

Posté par pol2095 sur 02 March 2019 - 23:13 PM in Développement Actionscript

Fais un trace(event.target.data) pour voir ce que ça renvoie



#1170002 fonction drag and drop pour Android

Posté par pol2095 sur 23 August 2018 - 15:52 PM in Discussions

Félicitations

Regarde la classe Tween pour les effets



#1169939 fonction drag and drop pour Android

Posté par pol2095 sur 28 June 2018 - 17:04 PM in Discussions

J'ai réalisé quelque chose de similaire avec Starling qui utilise MultitouchInputMode.TOUCH_POINT et pas les fonctions prédifinies d'Adobe.



#1169935 fonction drag and drop pour Android

Posté par pol2095 sur 27 June 2018 - 08:12 AM in Discussions

Je ne pense pas qu'on puisse utiliser les 2 en même temps, il faudrait recréer "GESTURE_ZOOM" avec MultitouchInputMode.TOUCH_POINT.



#1169930 fonction drag and drop pour Android

Posté par pol2095 sur 25 June 2018 - 21:54 PM in Discussions

le 3ème paramètres est facultatif, regarde la doc

import flash.events.TouchEvent;
import flash.ui.Multitouch;
import flash.ui.MultitouchInputMode;

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

Plan.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
Plan.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);

function onTouchBegin(event:TouchEvent):void
{
        event.target.startTouchDrag(event.touchPointID);
}
 
function onTouchEnd(event:TouchEvent):void
{
        event.target.stopTouchDrag(event.touchPointID);
}



#1169941 fonction drag and drop pour Android

Posté par pol2095 sur 28 June 2018 - 19:47 PM in Discussions

si tu veux déplacer un object avec "MultitouchInputMode.GESTURE" il faut utiliser "GESTURE_PAN" (avec 2 doigts)

Multitouch.inputMode = MultitouchInputMode.GESTURE;

Plan.addEventListener(TransformGestureEvent.GESTURE_PAN, panHandler);

function panHandler(event:TransformGestureEvent):void
{
event.currentTarget.x += event.offsetX;
event.currentTarget.y += event.offsetY;
}



#1169942 fonction drag and drop pour Android

Posté par pol2095 sur 30 June 2018 - 07:47 AM in Discussions

Une autre façon de faire est d'utiliser "MultitouchInputMode.TOUCH_POINT", voilà un exemple qui recréer "
GESTURE_ZOOM" avec un drag à un doigt

package
{
        import com.MySprite;
        import flash.display.Bitmap;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.ui.Multitouch;
        import flash.ui.MultitouchInputMode;

        public class Main extends Sprite
        {
                [Embed(source = "./Image.jpg")]
                private static const MyImage:Class;
       
                public function Main()
                {
                        this.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
                }
       
                private function addedToStageHandler(event:Event):void
                {
                        this.removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
               
                        Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
               
                        var mySprite:MySprite = new MySprite();
                        this.addChild(mySprite);
                        var myImage:Bitmap = new MyImage();
                        myImage.scaleX = myImage.scaleY = 0.2;
                        mySprite.addChild( myImage );
                }
        }
}

package com
{
        import flash.display.DisplayObject;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.TouchEvent;
        import flash.geom.Point;
        import flash.geom.Rectangle;

        public class MySprite extends Sprite
        {
                private var touches:Vector.<TouchEvent> = new <TouchEvent>[];
                private var touchPointID:int = -1;
                private var previousPosA:Point;
                private var previousPosB:Point;
                private var touchesContains:Vector.<Boolean> = new <Boolean>[];
       
                public function MySprite()
                {
                        this.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
                }
       
                private function addedToStageHandler(event:Event):void
                {
                        this.removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
               
                        stage.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
                        stage.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
                }
       
                private function onTouchBegin(event:TouchEvent):void
                {
                        touches.push( event );
                        touchesContains.push( this.contains( event.target as DisplayObject ) );
                        if( touches.length == 1 )
                        {
                                if( this.contains( event.target as DisplayObject ) )
                                {
                                        touchPointID = event.touchPointID;
                                        this.startTouchDrag(event.touchPointID);
                                }
                        }
                        else if( touchPointID != -1 )
                        {
                                this.stopTouchDrag(touchPointID);
                                touchPointID = -1;
                        }
               
                        if( touches.length == 1 )
                        {
                                previousPosA  = new Point( event.stageX, event.stageY );
                        }
                        else if( touches.length == 2 )
                        {
                                previousPosB  = new Point( event.stageX, event.stageY );
                                stage.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
                        }
                }
       
                private function onTouchMove(event:TouchEvent):void
                {
                        if( touches.length == 2 )
                        {
                                var index:int = touchIndex( event );
                                touchesContains[ index ] = this.contains( event.target as DisplayObject );
                       
                                var currentPosA:Point = index == 0 ? new Point( event.stageX, event.stageY ) : previousPosA.clone();
                                var currentPosB:Point = index == 1 ? new Point( event.stageX, event.stageY ) : previousPosB.clone();
                       
                                if( touchesContains[0] || touchesContains[1] )
                                {
                                        var currentVector:Point  = currentPosA.subtract(currentPosB);
                                        var previousVector:Point = previousPosA.subtract(previousPosB);
                               
                                        var sizeDiff:Number = currentVector.length / previousVector.length;
                               
                                        if( Math.abs( sizeDiff - 1 ) > 0.01 ) zoomImage( sizeDiff - 1, midPoint( currentPosA, currentPosB ) );
                                }
                                previousPosA  = currentPosA.clone();
                                previousPosB  = currentPosB.clone();
                        }
                }
       
                private function zoomImage(zoomAmount:Number, midPoint:Point):void
                {
                        zoomAmount *= 2;
                        if( this.scaleX + zoomAmount < 0.8 ) zoomAmount = 0.8 - this.scaleX;
                        var local:Point = this.globalToLocal( midPoint );
                        var x:Number = local.x;
                        var y:Number = local.y;
                        this.scaleX += zoomAmount;
                        this.scaleY += zoomAmount;
                        this.x -= x * zoomAmount;
                        this.y -= y * zoomAmount;
                }
         
                private function onTouchEnd(event:TouchEvent):void
                {
                        var index:int = touchIndex( event );
                        touches.splice( index, 1 );
                        touchesContains.splice( index, 1 );
                        if( touches.length == 1 )
                        {
                                if( index == 0 ) previousPosA = previousPosB.clone();
                                stage.removeEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
                        }
                        if( touchPointID != -1 )
                        {
                                this.stopTouchDrag(touchPointID);
                                touchPointID = -1;
                        }
                }
       
                private function touchIndex(event:TouchEvent):int
                {
                        for(var i:int = 0; i < touches.length; i++)
                        {
                                if( touches[i].touchPointID == event.touchPointID )
                                {
                                        return i;
                                }
                        }
                        return -1;
                }
       
                private function midPoint(currentPosA:Point, currentPosB:Point):Point
                {
                        var midPoint:Point = Point.interpolate(currentPosA, currentPosB, 0.5);
                        var rect:Rectangle = this.getRect( stage );
               
                        if( midPoint.x < rect.x )
                        {
                                midPoint.x = rect.x;
                        }
                        else if( midPoint.x > rect.x + rect.width )
                        {
                                midPoint.x = rect.x + rect.width;
                        }
               
                        if( midPoint.y < rect.y )
                        {
                                midPoint.y = rect.y;
                        }
                        else if( midPoint.y > rect.y + rect.height )
                        {
                                midPoint.y = rect.y + rect.height;
                        }
               
                        return midPoint;
                }
       
                public function dispose():void
                {
                        stage.removeEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
                        stage.removeEventListener(TouchEvent.TOUCH_END, onTouchEnd);
                        touches = null;
                        touchesContains = null;
                }
        }
}

;-)



#1170422 Application et basse de données

Posté par pol2095 sur 18 March 2019 - 23:50 PM in Développement Actionscript

Dommage que le php de free ne supporte pas json_encode(), ça évite ce genre d'erreur.



#1170420 Application et basse de données

Posté par pol2095 sur 18 March 2019 - 17:55 PM in Développement Actionscript

Il faudrait faire un trace sur "event.target.data" avant le JSON.parse(), il doit y avoir un caractère qui bloque l'analyse JSON.



#1169963 fonction drag and drop pour Android

Posté par pol2095 sur 12 July 2018 - 08:20 AM in Discussions

As-tu tester le code plus haut ?

pour le scroll de la souris
sprite.addEventListener(MouseEvent.MOUSE_WHEEL, zoomImage);

function zoomImage(event:MouseEvent):void
{
        var zoomAmount:Number = 0.1;
 
        if( event.delta < 0 ) zoomAmount *= -1;
        var x:int = sprite.mouseX;
        var y:int = sprite.mouseY;
        sprite.scaleX += zoomAmount;
        sprite.scaleY += zoomAmount;
        sprite.x -= x * zoomAmount;
        sprite.y -= y * zoomAmount;
}



#1170374 Application et basse de données

Posté par pol2095 sur 22 February 2019 - 23:53 PM in Développement Actionscript

PHP est une bonne solution pour une BDD, même chez Free, le FTP ça n'a rien à voir, ça sert à transférer des fichiers.



#1170162 Exporter des données via une application

Posté par pol2095 sur 20 December 2018 - 20:58 PM in Développement Actionscript

Ils ont désactivé la fonction mail() de php.



#1170168 Exporter des données via une application

Posté par pol2095 sur 24 December 2018 - 00:17 AM in Développement Actionscript

Le problème ne vient du code, mais de ton hébergeur qui gère mal la fonction mail() de php.
Prend un mutualisé chez OVH par exemple, et tu verras que ça marche.
J'utilise Outlook et mes mails apparaissent entièrement.




authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP