J'avoue que ce tutoriel, basé sur les scripts est un peu particulier. Il est donc important de le lire entièrement. Dans les dernières semaines je me suis mis à étudier davantage les propriétés statiques en Flash.
Fière des résultats de mon apprentissage, j'ai voulu changer d'air. Je me tourne donc vers PHP, comme çà au hasard. Par le fait même je m'arrête sur le même sujet, c'est à dire sur les propriétés statiques en PHP.
Dans le secteur « user contributed notes », je fait la rencontre d'un simple script, une fonction PHP, ayant une propriété statique. C'est donc là que commence mon aventure. Je décide donc de refaire le script en Flash CS3.
Par contre vous comprendrez que tout le travail ne ressemble en rien au script m'ayant inspirer au départ. Sauf le script de base fait par SID TRIVEDI qui est presque identique. Il est seulement franciser en quelque sorte. Ce qu'il faut comprendre cependant c'est que son exécution est fort différent ainsi que son utilisation.
Voici pourquoi :
[ 1 ] Le script d'inspiration en PHP : est une simple fonction avec une propriété statique.
[ 2 ] Je décide donc d'écrire une classe en Flash avec deux propriétés statiques, une variable statique et une méthode statique.
[ 3 ] Pour en faire plus, je décide d'écrire une classe PHP avec deux propriétés statiques, une variable statique et une méthode statique.
Fière des résultats de mon apprentissage, j'ai voulu changer d'air. Je me tourne donc vers PHP, comme çà au hasard. Par le fait même je m'arrête sur le même sujet, c'est à dire sur les propriétés statiques en PHP.
Dans le secteur « user contributed notes », je fait la rencontre d'un simple script, une fonction PHP, ayant une propriété statique. C'est donc là que commence mon aventure. Je décide donc de refaire le script en Flash CS3.
Par contre vous comprendrez que tout le travail ne ressemble en rien au script m'ayant inspirer au départ. Sauf le script de base fait par SID TRIVEDI qui est presque identique. Il est seulement franciser en quelque sorte. Ce qu'il faut comprendre cependant c'est que son exécution est fort différent ainsi que son utilisation.
Voici pourquoi :
[ 1 ] Le script d'inspiration en PHP : est une simple fonction avec une propriété statique.
[ 2 ] Je décide donc d'écrire une classe en Flash avec deux propriétés statiques, une variable statique et une méthode statique.
[ 3 ] Pour en faire plus, je décide d'écrire une classe PHP avec deux propriétés statiques, une variable statique et une méthode statique.
Prenez note qu'il s'agit ici du même sujet inspirer au départ par la fonction PHP, avec évidemment les mêmes résutats. Mon but étant la compréhension du script d'origine et une réadaptation en format classes des deux langages utilisés. Bref, un défi personnel de prouver que l'on peut étudier PHP et transposer nos connaissances en fichier Flash et, vice versa. Et croyez que le script de base, je l'ai compris au premier coup d'oeil. Je voyais déjà la classe en Flash et je voyais la classe en PHP.
La fonction PHP de base : de SID TRIVEDI
La fonction PHP de base est simple à comprendre : voici l'adresse »
http://www.php.net/manual/fr/language.variables.scope.php#78778
Le but de SID TRIVEDI sera d'augmenter par groupe de 24 nombres à chaque appelle de la fonction. Si vous cliquez sur l'url ici en haut vous allez mieux comprendre ses intentions de bases. Avec un peu d'imagination on peu déjà voir quelques raisons d'utilisations dans des applications concrètes.
Voici le fonctionnement de son script : En pseudo code.
Premier appel de la fonction vous aurez les nombres : De « 1 » à « 25 ».
Deuxième appel de la fonction vous aurez les nombres : De « 26 » à « 50 ».
Troisième appel de la fonction vous aurez les nombres : De « 51 » à « 75 » ect . . .
Passons aux scripts Flash CS3 AS3
Vous aurez donc deux fichiers et ce peu importe le langage utilisé, sois Flash, sois PHP. Ceci est dû au fait que nous utilisons des classes pour donnez exactement les mêmes résultats. Il y a un fichier stockeur des données et des types. Celui-ci n'est qu'un modèle, pouvant aussi rendre les résultats. C'est d'ailleurs le cas ici.
Démarche pour les scripts Flash CS3
Démarrez votre logiciel Flash CS3.
Faite : Fichier » Nouveau
Choisissez : actionScript file/fichier actionScript «« Ce sont les fichiers de classes.as
Copiez/Collez le script ici bas.
Notes : À la première ligne de code vous avez un package celui-ci est un chemin de répertoires imbriquer les uns dans les autres. Il se nomme : icom.design.communication.exercices. Préparons ces répertoires comme suit »
Faites vous un répertoire : nommer le ' icom ' et entrez à l'intérieur de ce répertoire.
À l'intérieur de ' icom ' faite un autre répertoire, nommer le ' design '. Entrez à l'intérieur de ce répertoire.
À l'intérieur de ' design ' faite un autre répertoire, nommer le ' communication '. Entrez à l'intérieur du répertoire.
À l'intérieur de ' communication ' faite un autre répertoire, nommer le ' exercices '. voilà .
Dernière étape : enregistré votre fichier ' TraceCompteur.as ' à l'intérieur du répertoire ' exercices '.
Votre fichier de classe : TraceCompteur.as. Respecter le nom du fichier et la casse.
- Code: Tout sélectionner
package icom.design.communication.exercices
{
public class TraceCompteur
{
public static var compteur:int = 1;
public function TraceCompteur()
{
// .. rien
}
// .. Méthode « statique » afficheCompteur()
public static function afficheCompteur()
{
var limite:int = compteur + 24;
while(compteur <= limite)
{
trace(compteur);
compteur = compteur + 1;
}
var numeroCompteur:int = compteur - 1;
trace('Un total de « ' + numeroCompteur + ' » numéros sont afficher');
return;
}
}
}
Votre fichier de lancement : traceCompteur_01.fla. Placer ce fichier à coté du répertoire ' icom ',
enregistrer le à l'extérieur du package icom.design.communication.exercices.
- Code: Tout sélectionner
import icom.design.communication.exercices.TraceCompteur;
/*
» Il n'y a pas d'instanciation de la classe ici.
»
» Nous appellons la méthode statique afficheCompteur()
- de cette façon : NomDeLaClasse.nomDeLaMethodeStatique().
» Les appelles de la méthode statique afficheCompteur().
» Par groupe de '24', faisant une suite à chaque appelle.
*/
TraceCompteur.afficheCompteur(); // De '1' Ã '25'
TraceCompteur.afficheCompteur(); // De '26' Ã '50'
TraceCompteur.afficheCompteur(); // De '51' Ã '75' ect...
Ce qu'il faut comprendre ici c'est que les propriétés statiques n'auront de sens qu'a l'intérieur de la classe qui les a définis. C'est pourquoi dans les fichiers de lancement des scripts vous n'avez pas de variable pouvant instancier la classe cibler. Voici un exemple à partir d'un fichier d'exécution .fla
- Code: Tout sélectionner
import icom.design.communication.exercices.TraceCompteur;
// .
// .. Cette ligne de code pourtant standard ne fonctionnera pas
// .. Une erreur sera levé à l'exécution et/ou compilation.
// .
var tc:TraceCompteur = new TraceCompteur();
tc.afficheCompteur();
Celà est dû au fait que nous ciblons des propriétés statiques.. Dans le cas du fichier traceCompteur_01.fla, c'est un méthode statique que nous appellons. À partir du fichier de lancement, le .fla en quelque sorte, nous appellons les méthodes et propriétés statiques que de cette façon : NomDeLaClasse.nomDeLaMéthodeStatique().
Voici un exemple d'appelle de méthode statique
- Code: Tout sélectionner
import icom.design.communication.exercices.TraceCompteur;
// .
// .. Aucune variable n'instancie la classe on a pas le mot clé ' new '
// .
// .. Dans le cas d'une méthode statique
// .
TraceCompteur.afficheCompteur();
// .
// .. Dans le cas d'une variable statique
// .
TraceCompteur.compteur = 12;
Évidemment ce dernier script s'exécutera parfaitement. Il n'y a pas vraiment de différence entre l'implémentation Flash vis à vis PHP. Ce dernier cependant est beaucoup plus exigant et ce, directement dans le fichier de classe. Par contre son architecture me paraît beaucoup lisible.
Passons maintenant aux scripts PHP
Faites vous un nouveau document en PHP. Assurez vous que ce fichier sois empty/vide, une feuille blanche.
Collez y le script ici bas : EchoCompteur.class.php. Placer le dans un répertoire nommer ' classes '. Sur le root.
- Code: Tout sélectionner
<?php
class EchoCompteur {
public static $compteur = 1;
# -- Constructeur
public function EchoCompteur()
{
# -- Rien
}
# -- Méthode static afficheCompteur()
public static function afficheCompteur()
{
# -- La propriété static est toujours précéder
# -- par le nom de la classe : EchoCompteur::$compteur.
$limite = EchoCompteur::$compteur + 24;
# -- Boucle while
while(EchoCompteur::$compteur <= $limite)
{
echo EchoCompteur::$compteur . '-';
EchoCompteur::$compteur = EchoCompteur::$compteur + 1;
}
$br = '<br />';
$numeroCompteur = EchoCompteur::$compteur - 1;
echo $br . "Un total de " . $numeroCompteur . " nombres sont afficher" . "<br />";
return;
}
}
?>
votre fichier de lancement : echoCompteur.php. Évidemment placer sur le root.
- Code: Tout sélectionner
<?php
require_once('classes/EchoCompteur.class.php');
# -- Aucune instanciation
$br = '<br />';
# -
# -- À chaque appelle de la méthode static
# -- il y a une suite logique par groupe de '24' nombres.
# -
# -- Nous appellons la méthode static comme suit,
# -- NomDeLaClasse::nomDeLa methodeStatic();
# -
EchoCompteur::afficheCompteur(); # -- De '1' Ã '25'
echo $br;
EchoCompteur::afficheCompteur(); # -- De '26' Ã '50'
echo $br;
EchoCompteur::afficheCompteur(); # -- De '51' Ã '75' ect...
?>
Ici aussi on lève une exception, du genre FatalError si l'on veut instancier la classe avec le mot clé ' new '.
Exemple : $ec = new EchoCompteur();
----------> $ec->afficheCompteur();
C'est une des caractéristiques des propriétés statiques.
Voici les résultats au navigateur :
1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-
Un total de 25 nombres sont afficher. C'est le premier appel de la méthode statique.
26-27-28-29-30-31-32-33-34-35-36-37-38-39-40-41-42-43-44-45-46-47-48-49-50-
Un total de 50 nombres sont afficher. C'est le deuxième appel de la méthode statique.
51-52-53-54-55-56-57-58-59-60-61-62-63-64-65-66-67-68-69-70-71-72-73-74-75-
Un total de 75 nombres sont afficher. C'est le troisième appel de la méthode statique.
Mot de la fin :
Quoiqu'il en soit je me suis amuser à vous rendre ce document. Certaine chose aurons quand même été plus difficile. Le fait par exemple que le programme PHP nous oblige à écrire nos propriétés statiques précédé du nom de la classe et ce directement dans le fichier de classe. Celà est dû au fait que nous défénissons nos propriétés comme membre de classe. C'est aussi possible en Flash mais pas obligatoire. Faut-il aussi comprendre que je n'ai pas la même expérience en PHP qu'en Flash. Mon but premier étant de vous démontrer qu'il est simple parfois de transposer les connaissances d'un langage à un autre. Cependant la complexité est aussi possible en programmation orienté objet. Il s'agit ici d'un simple développement d'étude et d'exercice. Cependant j'aurais beaucoup à dire sur les propriétés statiques.
Équipement utilisé :
Serveur : wamp 2.
apache : 2.2.11.
PHP : 5.2.9-2.
Logiciel : netBeans IDE 6.5. + Flash CS3.
Amicalement zardoz.







