Jeudi 19 février 2009 4 19 /02 /Fév /2009 12:29
Pour l'inauguration de mon Blog je vais commencer par un tutoriel qui explique clairement et en détail comment réaliser un site fullflash (entièrement en flash) et fullbrowser (100 % de la fenêtre du navigateur) . Le tout en gardant le contenu centré correctement et non redimensionné (à part le fond qui prendra toute le fenêtre).

Avant toute chose je tiens à préciser que les tutoriels présenteront tous un code orienté objet avec des classes action script. En effet, bien que la programmation actionscript en séquentielle soit toujours possible Adobe à fait clairement le choix de la programmation objet dans l'évolution d'actionscript. Mes tutoriels sont destinés  à des personnes ayant de bonnes notions d'actionscript, et ils seront difficiles d'accès aux novices.

Je conseil à tous de franchir le pas de la programmation objet pour pouvoir utiliser flash à pleine puissance.

Verion de flash : FLASH CS3/AS3

Au menu de l'article :

1. Création de l'animation main.fla
2. Création de la classe principale Main.as
3. Création de la classe FullBrowser.as
4. Intégration de l'animation du coté HTML
5. Exemple concret

1. Création de l'animation main.fla


Commencons doucement mais sûrement.

  • Créez une nouvelle animation flash (1000 px * 720 px dans mon exemple mais libre à vous de faire autrement), et attribuez lui comme classe principale le classe lib.main que nous créerons par la suite (champ classe du document dans l'onglet propriétés).
  • Créez un clip qui servera de fond, de la taille de l'animation et positionné en x:0 et y:0. Attribuez lui le nom fond dans l'onglet propriétés.

Nous pouvons passé désormais à la programmation action script et à la création de la classe principale.

2. Création de la classe principale Main.as

Tout d'abord un peu d'organisation.

  • Créez un répertoire nommé lib à l'endroit où se trouve l'animation principale, il contiendra les classes que nous créerons. Rappelons que le fait de disposer les classes dans ce répertoire lib implique qu'elles appartiendront aux package lib.
  • Créez maintenant un nouveau fichier action script nommé Main.as (attention à la majuscule) dans le répertoire lib. Copiez y le code qui suit sans oublier de bien lire les commentaires pour le comprendre :

/* La ligne suivante est indispensable car la classe Main.as est située dans le dossier lib */
package lib {
   
/* Import des classes utilisées, indispensable */
    import flash.display.Sprite;
    import flash.display.MovieClip;
    import flash.text.TextField;
    import flash.display.Stage;

    import flash.display.Shape;

  
/* Import de la classe fullscreen que nous créerons par la suite et qui est le coeur de notre tutoriel  */
    import lib.FullBrowser;   

   
/* Constructeur de la classe */
    public class Main extends Sprite {
       
/* Variables de la classe */
        var fb:FullBrowser;
// Objet FulllBrowser qui permettra de gérer la taille de l'animation par rapport au navigateur
        var page:Sprite;
// Contiendra le contenu du site flash qui devra resté centré
        var rectangle:Shape;
// Pas du tout indispensable mais le rectangle permettra de visualiser la zone du contenu dans le cadre de notre exemple
       
        public function Main() {
           
/* Page principale ou se trouvera tout le contenu */
            page = new Sprite();

            addChild(page);
// Affichage de la zone de contenu
           
           
/* Création du rectangle qui nous sert à visualiser la zone de contenu qui doit rester centrée dans la fenêtre du navigateur */
            rectangle = new Shape();
            rectangle.graphics.beginFill(0x000000, 0.2);
            rectangle.graphics.drawRect(0, 0, stage.width, stage.height);

            page.addChild(rectangle);
// Affichage du rectangle dans la zone page
           
           
/* Gère le plein écran */
            /* Le constructeur de la classe fullscreen prend en paramètre l'objet de la classe principale (this) ce qui permettra d'accéder aux clips que l'on a créé dans l'animation main.fla (fond) et dans la classe Main.as (page). */

            fb = new FulllBrowser(this);           
        }       
    }       
}



Passons désormais à la seconde et dernière classe de notre tutriel, et qui constitue également le coeur pour gérer le fullbrowser.


3. Création de la classe FullBrowser.as


  • Créez maintenant un nouveau fichier action script nommé FullBrowser.as (attention à la majuscule) dans le répertoire lib. Copiez y le code qui suit sans oublier de bien lire les commentaires pour le comprendre :

package lib {
    import lib.Main;
    import flash.system.Capabilities;
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.events.Event;
   
    public class FullBrowser {
       
        var animation:Main;
        var fond:MovieClip;
        var stage:Stage;
        var page:Sprite;
       
       
/* Constructeur */
        public function FullBrowser(a:Main) {
           
           
/* Initialisation des variables */
            animation = a;
            fond = a.fond;
            stage = a.stage;
            page = a.page;
           
            /* animation non redimensionnée et en haut à droite de la fenêtre du navigateur */
            stage.scaleMode = "noScale";           
            stage.align="LT";
           
            /* Initialisation de la taille du fond en rapport à la taille du lecteur dans le navigateur */

            fond.width = stage.stageWidth;
            fond.height = stage.stageHeight;

            /* On place la page au centre */
            page.x = (stage.stageWidth - page.width)/2;
            page.y = (stage.stageHeight - page.height)/2;
           
            /* Quand on redimensionne la fenêtre il faut redimensionner le fond en conséquence */
            /* Il faut également bien placer le contenu de la page au centre de la fenêtre */
            /* L'écouteur Event.RESIZE permet de détecter le redimensionnement de la fenêtre */

            stage.addEventListener(Event.RESIZE, reSize);
           
        }
       
        /* Redimensionnement de l'animation */
        private function reSize(event:Event) {
            /* Initialisation de la taille du fond en rapport à la taille du lecteur dans le navigateur */
            fond.width = stage.stageWidth;
            fond.height = stage.stageHeight;
           
            /* On place la page au centre */
            page.x = (stage.stageWidth - page.width)/2;
            page.y = (stage.stageHeight - page.height)/2;
        }       
    }       
}


4. Intégration de l'animation du coté HTML

Nous avons fait les 3/4 du travail mais voyons ce qu'il faut faire du coté navigateur (html) pour rendre le site fullbrowser opérationnel.

  • Nous allons d'abord supprimer les marges que tous les navigateurs présentent entre le contenu et la fenêtre. Pour cela nous allons appliquer l'attribut CSS margin:0px; à la balise BODY de la page HTML  de la fason suivante :
             <body style="margin:0px;">

  • Enfin, il faut attribuer à l'animation flash, à l'endroit ou on l'insère, une largeur et une hauteur de 100%. Au final votre page HTML peut se présenter de la manière suivante  :

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Totoriel FullBrowser</title>
</head>
<body style="margin:0px;">

    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="100%" height="100%" id="main" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="allowFullScreen" value="false" />
    <param name="movie" value="main.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
    <embed src="main.swf" quality="high" bgcolor="#ffffff" width="100%" height="100%" name="main" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>

</body>
</html>

5. Exemple concret

Le tutoriel est terminé et j'espère qu'il vous paraîtra clair et utile. J'insiste encore une fois sur le fait qu'il est destiné à un public initié. Toutefois, si le sujet vous intérêsse et que vous ne comprenez pas tout, je répondrais avec le plus grand plaisir aux commentaires que vous laisserez sur le blog.

Pour finir, comme un bon exemple vaut mieux que 1000 mots, vous pouvez télécharger l'exemple et les codes source de ce tutoriel à l'adresse suivante :

http://tutoriels.dbstudio.fr/fullbrowser.zip


A bienôt

Bruno-D
Par Bruno-D
Ecrire un commentaire - Voir les 15 commentaires
Retour à l'accueil

Commentaires

Merci beaucoup pour ce tuto, c'est exactement ce que je cherchais à faire. Par contre tu as une faute de frappe à la fin du second paragraphe, tu as un L en trop. A moins que ce ne soit fait exprès ^^
Commentaire n°1 posté par Thomas le 04/03/2009 à 21h58
Je suis débutant, j'ai flash 8, je ne comprend pas l'étape 1 qui parle d'attribuer des classes principales main.lib. Où fait il aller dans mon site flash nommé site01.fla pour attribuer des classes.
merci d'avance
Commentaire n°2 posté par nower le 15/06/2009 à 22h16
Flash 8 est sorti avant Flash CS3 et la grande nouveauté de Flash CS3 c'est l'intégration de l'ActionScript 3. Ta version de Flash ne le supporte pas et ce tutoriel l'utilise. Tu peux faire des recherches avec les mots clés fullbrowser et AS2 (ActionScript 2).
Commentaire n°3 posté par Thomas le 15/06/2009 à 23h26
merci pour ton tutoriel je le trouve très clair.
Par contre, je trouve qu'il manque la gestion du chargement de l'animation principale (preloader). Comment ferais-tu pour l'intégrer dans ta classe Main
Commentaire n°4 posté par brice le 16/06/2009 à 11h52
Ça fonctionne, c'est de la balle.
Merci
Commentaire n°5 posté par Loïc le 25/07/2009 à 10h50
salut, ton tutoriel est au top, j'ai réussi a réalisé mon full browser.
Mais je voudrai que mon animation soi a droite et pas centré, je ne voi pas quoi modifié....
peut tu me dirigé?
Commentaire n°6 posté par christophe le 03/08/2009 à 06h40
Merci !

Dans la class fullscreen à la place de (à deux endroits ) :

/* On place la page au centre */
page.x = (stage.stageWidth - page.width)/2;
page.y = (stage.stageHeight - page.height)/2;

Tu dois mettre

/* On place la page au centre */
page.x = stage.stageWidth - page.width;
page.y = stage.stageHeight - page.height;

En gros enlever la division par deux.

A bientôt
Commentaire n°7 posté par Bruno-d le 03/08/2009 à 13h36
Salut, merci pour ton aide.
j'ai modifier comme tu la ecri mais malheureusement sa ne fonctionne pas, l'anim reste centré
Commentaire n°8 posté par christophe le 05/08/2009 à 07h48
Salut,
merci pour ce tutorial qui m'a bien aidé.
peux tu me dire quelles sont les conditions pour bloquer le retrecissement de la photo du fond à une résolution minimale voulue et éviter les bordure blanches qui apparaissent lorsque l'on déplie la fenetre de facon non homothetique au format du BG.

merci :)
Commentaire n°9 posté par david le 10/09/2009 à 15h56
Bonjour,
Un grand merci pour ce tuto très clair, cependant, j'ai deux problèmes, l'accès à ton fichier d'exemple est bloqué, impossible de le télécharger...?
D'autre part, après avoir cherché ce qui pouvait clocher..., je me retrouve avec des bandes sur les côtés, ou à droite et à gauche en fonction du recadrage de la fenêtre du navigateur, si tu as une idée...?
Sinon le redimensionnement fonctionne très bien !
Encore merci pour ce partage de connaissances !
Commentaire n°10 posté par Antoine le 08/06/2010 à 17h11
bonjour , merci pour letuto , je vais essayer ça :)

par contre le lien du fichier.zip n'est pas valide :(

@+
Commentaire n°11 posté par Apoulit le 01/09/2010 à 06h11
ça m'a l'air bien mais ça serait cool de pouvoir accéder au fichier .zip
Commentaire n°12 posté par Marvin le 21/09/2010 à 12h45
Bon tuto, merci!
Commentaire n°13 posté par Agence communication Annecy le 06/01/2011 à 13h35
Bonjour, j'ai bien lu vos explication pour le full browser... je suis novice et je n'y arrive pas. Voila j'ai réalisé mon application avec flash catalyst cs5(mes on a pas acces au code ...). ensuite j'ai exporté mon package et donc je me retrouve avec un html et swf compilé. J'ai par contre flash builder pour éditer les codes... J'ai bien compris pour les modifs dans le html mais la ou je bloque c'est à la première étape... Je n'ai pas de .FLA... Dans mon swf j'ai une image "de fond" et ces cette image que je voudrais avoir en pleine fenetre... ou au pire toute l'application.. merci pour votre aide car je vais peter un cable!!
Commentaire n°14 posté par nico le 22/04/2011 à 12h00
Merci vous avez sauvé nos vies et nos marges ! On vous doit tout!
Commentaire n°15 posté par Les roseaux coincoin le 07/05/2012 à 13h37

Présentation

Recherche

Créer un Blog

Calendrier

Mai 2012
L M M J V S D
  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 26 27
28 29 30 31      
<< < > >>

Syndication

  • Flux RSS des articles
Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus