Archive for December, 2007

29
Dec

Creér un composant pour FLASH

comem expliqué sur: http://www.flashcomponents.net/tutorials/triangle/triangle.html

28
Dec

CreateTextField : comment accéder à l’objet ?

Actionscript:
  1. MovieClip.prototype.__createTextField__ = MovieClip.prototype.createTextField;
  2. MovieClip.prototype.createTextField = function(n,d,x,y,w,h) {
  3.  this.__createTextField__(n,d,x,y,w,h);
  4.  return this[n];
  5. }

 

Ensuite

Actionscript:
  1. var myText = _root.createTextField(“saisie”,10,10,10,100,20);
  2. // Modifie les propriétés du champ texte créé.
  3. myText.text=“hello worlds”;

27
Dec

Flash et FreeTransoformation et whiteBoard

Dans un projet de e-learning, un des modules le plus important est le tableau blanc interctif.
Le pricipe de ce tableau blanc (whiteBoard) a été décrit dans un post précédent (utilisant les SHARED objects sous RED5)
Un tableau blanc nécessite l’ajout des nouveaux objets falsh mais aussi leur redimensionnement, leur déplacement et leurs rotation.

Deux prototypes peuvent être utilisés:

http://blog.greensock.com/category/transforming/

Mon préféré car il génére des evenements et possède une fonction intéressante: LA rotation en utilisant le MILIEU du movieClip.

L’autre prototype: http://proto.layer51.com/d.aspx?f=636

issu de http://www.senocular.com/flash/actionscript.php?file=ActionScript_1.0/Prototypes/MovieClip/FreeTransform.as

 

26
Dec

Flash 8 FULL SCREEN

trouvé sur

http://julian.empiregn.com/2007/2/22/How-to-create-true-fullscreen-movies-with-Flash

25
Dec

_depth en FLASH

la propriété _depth n’existe pas sous FLASH.

Nous pouvons néanmoins la simuler facilement:

Actionscript:
  1. getDepth = function () {
  2.  return this.getDepth();
  3. };
  4. setDepth = function (valeur) {
  5.  swapDepths.call(this, valeur);
  6. };
  7. // Addproperty
  8. MovieClip.prototype.addProperty(“_Depth”, getDepth, setDepth);
  9. Button.prototype.addProperty(“_Depth”, getDepth, setDepth);
  10. TextField.prototype.addProperty(“_Depth”, getDepth, setDepth);

24
Dec

dessiner avec Flash

Il suffit d(utiliser les methodes lineTo 

Actionscript:
  1. createEmptyMovieClip(“Line”, 1);
  2. Line.lineStyle(1, 0×000000, 100);
  3. onMouseDown = function () {
  4.  Line.moveTo(_xmouse, _ymouse);
  5.  onMouseMove = function () {
  6.   Line.lineTo(_xmouse, _ymouse);
  7.   trace(“*”);
  8.  };
  9. };
  10. onMouseUp = function () {
  11.  onMouseMove = null;
  12.  Line._x=100;
  13. };

20
Dec

shared objects order with NC connection

var nc:NetConnection = new NetConnection();
nc.connect(”rtmp://localhost/whiteBoard”,”zaza”,”zaza”);
var so:SharedObject = SharedObject.getRemote(”whiteBoard”, nc.uri, false);
so.connect(nc);

so.onSync = function(list) {
 trace(”SYNCRO”);
 }

nc.onStatus= function(infoObject:Object) {
 trace(infoObject.code);
}

test_btn.onPress=function() {
 trace(”click”);
 _root.so.data.mousePosition = {x: 100, y: 200};
}

13
Dec

Passer un paramètre dans un evenement click sous Flash

Il n’est pas possible de passer directement un paramètre comme:

ACTIONSCRIPT:
  1. bouton.onPress=enterRoom(room);
  2.  
  3. function enterRoom(_room) {
  4.  trace(room);
  5. }

On peut néanmoins résoudre ce problème par:

ACTIONSCRIPT:
  1. bouton.room=“room1″;
  2. bouton.onPress=enterRoom;
  3.  
  4. function enterRoom() {
  5.  trace(this.room);
  6.  trace(“*”);
  7. }

10
Dec

red5 tableau blanc interactif

Shared Whiteboard application in Red5

 

Pour cela il faut utiliser les SharedObject (SO): recuperer les coordonnées de la souris et les transmettre vers le SO.
Sur la partie client: 

var whiteboard_SO:SharedObject = SharedObject।getRemote(”whiteboard”,nc.uri,”false”);

Quand nous pressons la souris sur un MovieClip, nous capturons les positions x et y de la souris et nous les envoyons vers le serveur:

clip_MC.onPress = function(){
  //envoyer x et  y au serveur
  NetConnectionObj.call(”draw”, null,param1, param2,param3);
};

clip_MC.onMouseMove = function(){
  //envoyer x et  y au serveur
  NetConnectionObj.call(”draw”, null,param1, param2,param3);
}

Sur le serveur,

public void draw(Object[] params){
  whiteboard_SO.setAttribute(”point”,params[0].toString()+”:”+params[1].toString()+”:”+params[2].toString());
  // va etre declanché sur l’evenement onSync sur tous les clients connectés
}

Enfin sur la partie client

Whiteboard_SO.onSync = function(infolist){
  // Inside the change event we will get the xmouse and ymouse and press string
  //If event string is press, jump to new line(i.e. lineto(x,y))
  //If event string is move, move with drawing(i.e. moveto(x,y))
}

TRADUIT de http://sunil-gupta.blogspot.com/2007/04/shared-whiteboard-application-in-red5.html

05
Dec

AJAX php: vérifier si un user est déjà enregistré…

AJAX php: vérifier si un user est déjà enregistré sans avoir à re-charger la page

PHP:
  1. function RemoteRequestObject()
  2.  {
  3.   var A = false;  
  4.   try  {   A = new ActiveXObject(“Msxml2.XMLHTTP”);  }
  5.   catch(e)
  6.   {  try  {    A = new ActiveXObject(“Microsoft.XMLHTTP”);  }
  7.    catch(err)   {    A = false;   }
  8.   }
  9.  
  10.   if(!A && typeof(XMLHttpRequest) != ‘undefined’)
  11.    A = new XMLHttpRequest();
  12.   return A;
  13.  }
  14.  
  15.  function validateUser(oForm) {
  16.    var x = RemoteRequestObject();
  17.   oForm.onsubmit = function()
  18.   {
  19.  
  20.   if (oForm.annee.value==“annee”) {
  21.   alert(“Entrez votre année de naissance”);
  22.   oForm.annee.focus();
  23.   return false;
  24.   
  25.  }
  26.  if (oForm.email.value.indexOf(“@”) == -1 || oForm.email.value.indexOf(“.”) == -1 ||  oForm.email.value == “”)
  27.  {
  28.   alert(“Veuillez entrer un email valide”);
  29.   oForm.email.focus();
  30.   return false;
  31.  }
  32.  
  33.  if (oForm.pseudo.value==“”) {
  34.   alert(“Choissez un pseudo”);
  35.   oForm.pseudo.focus();
  36.   return false;
  37.  }
  38.  if (oForm.motdepasse.value==“”) {
  39.   alert(“Choissez un mot de passe”);
  40.   oForm.motdepasse.focus();
  41.   return false;
  42.  }
  43.  
  44.  if (oForm.cgu.checked==false) {
  45.   alert(“Vous devez accepter les conditions générales d’utilisation”);
  46.   oForm.cgu.focus();
  47.   return false;
  48.  
  49.  }
  50.  
  51.    var usr=oForm.elements[‘pseudo’].value;
  52.    var url = “ajax.php?pseudo=”+usr;
  53.    x.open(“GET”,url,true);
  54.    x.onreadystatechange=function()
  55.    {
  56.     if(x.readyState == 4 && x.status == 200)
  57.     {
  58.      var r = x.responseText;
  59.      if(r.indexOf(“OK”) == 0)
  60.      {
  61.       oForm.submit();
  62.      }
  63.      else
  64.      {
  65.       alert(“Le pseudo que vous avez choisi est déjà utilisé!\nVeuillez le changer!”);
  66.     form3.pseudo.focus();
  67.      }
  68.     }
  69.    };
  70.    x.send(null);
  71.    return false;
  72.   }
  73.  
  74.  }

 

Le fichier ajax.php contient

PHP:
  1. <!–p require_once(‘Connections/con1.php’);<br–>mysql_select_db($database_con1, $con1);
  2.     $sql = “SELECT * FROM chat WHERE pseudo = ‘$pseudo’”;
  3.     $result = mysql_query($sql) or die(mysql_error());
  4.  
  5.     if(mysql_num_rows($result)>0)
  6.     {
  7.         echo “KO”;
  8.     }
  9.     else
  10.     {
  11.         echo “OK”;
  12.     }
  13. ?>