Apprendre l'informatique avec Kommunauty

Inscription Connexion

Publié le 5 avril 2009 par Dawlin

Charger HTML ou PhP dans un fichier flash

Bonjour, voici un tutoriel fort pratique qui vous permettra d'afficher le contenu d'une page HTML ou PHP dans FLASH, incluant ainsi images, texte, liens, grâce à une mise en forme CSS, grâce à Action Script 2.



Création du code HTML/CSS

Le HTML

Tout d'abord, le code HTML. ouvrez votre éditeur de code favori et créez votre page HTML presque comme bon vous semble, à ceci près que la structure est celle d'un XML et pas celle d'un HTML...

Je m'explique : un balise <strong></strong> ne sera pas lue par flash comme si c'était du gras, il va falloir la définir dans le CSS. Vous n'aurez pas d'id de texte à marquer, mais directement un nom de balise. vous n'aurez pas non-plus de balise

. Vous gérez tous les retours à la ligne avec des <br /> et vous notez soigneusement, sauf pour lien et images, les noms des balises que vous utilisez.

J'ai fait un exemple de page, disponible ici : Page HTML à charger

Le CSS

Là, vous définissez le CSS en fonction du nom des balises, voir la feuille CSS d'exemple que j'ai créée, et la comparer avec la page HTML disponible plus haut.

Feuille CSS à charger

Voilà, une bonne chose de faite.



Création du code flash

Ouvrez Flash, créez un nouveau document, dans lequel vous placez n'importe quelle mise en page, symboles d'agrémentation comme si c'était un flash normal, avec en plus un champ de texte que nous allons ici prénommer d'occurrence "champ", multiligne, auquel vous faites glisser une scrollbar :

Maintenant créez un nouveau calque pour les actions (personnellement, je préfères séparer mes code du contenu, ce n'est pas obligé mais c'est plus propre. Je mets aussi toujours les noms de calques ActionScript en majuscule) :

Et maintenant, LE CODE !!!

Le code AS2

On commence par créer la variable qui nous servira à accueillir le code CSS :

Code


// Création de la variable de type style css
var style1:TextField.StyleSheet = new TextField.StyleSheet();
// chargement du css dedans
style1.load("style.css");
//application au champ
champ.styleSheet = style1;

Maintenant on défini les paramètres de M. Champ de texte :

Code


//définition des paramètres du champ de texte.
champ.multiline= true;
champ.wordWrap = true;
champ.html = true;

Et pour fini on charge la page et on l'implante :

Code


// On va maintenant charger notre page en tant que XML dans une variable
var page:XML = new XML();
//On ignore les blancs
page.ignoreWhite = true;
// On charge le fichier
page.load("page.html");
page.onLoad = function () {    
// et on attribue son contenu au texte "champ"
    champ.htmlText = page;
}

Voilà, pour avoir un aperçu du résultat, c'est ici :

Chargement de page HTML dans flash

Pour avoir les sources complètes, c'est là (.zip de 276Ko) : Sources

Juste le .fla : tuto.fla

Voilà, j'espère que ce tutoriel vous a aidé !

  
10 commentaires

C'est génial ça ! J'aurai pas pensé que ça existait. Ça veut dire qu'on peut faire tout en PHP/FlASH style mettre un cadre de 1px/1px si c'est juste pour executer du PHP.

le 5 avril 2009

Mmmouais... mais à quoi ça sert ? autant inclure directement le PhP

le 6 avril 2009

Ah ouais

le 6 avril 2009

Sauf pour te servir d'un langage client type javascript et de faire une interaction avec un langage serveur type PhP.

le 7 avril 2009

Bonjours,

Est ce que ce tuto fonctionnerai avec tout un formulaire (donc zones de saisis + boutons) et 2 pages PHP (qui sont en lien entre elle avec un lien vers une page et un lien vers l'autre et avec session_start() ) ?

le 14 avril 2009

Je ne sais pas, peut-être. Fais tes tests toi-même ça ne coûte pas grand-chose

le 14 avril 2009

Bonjour, sauriez-vous transposer ce code en AS3? Cela me serait fort utile...

le 9 avril 2010

Je ne pense pas qu'il y ait trop de modifications à faire, étant donné que les fonctions en AS3 restent plus ou moins les mêmes.

Par contre je ne fais pas moi-même d'AS3 donc par conséquent je peux pas t'aider, désolé...

le 11 avril 2010

Il te serait peut-être utile de passer à l'as3 ...

Sinon, j'ai trouvé comment faire, je donne le code au cas où ça puisse aider, avec en bonus le chargement d'un css :

Code


var textLoader:URLLoader = new URLLoader();
var cssLoader:URLLoader = new URLLoader();
var textReq:URLRequest=new URLRequest('ma page .html, .php, ...');
var cssReq:URLRequest=new URLRequest("mon css .css");

textLoader.load(textReq);
cssLoader.load(cssReq);
textLoader.addEventListener(Event.COMPLETE, textLoadComplete);
cssLoader.addEventListener(Event.COMPLETE, cssLoadComplete);

//--------- Texte chargé => on convertit les infos en 'string' et on affiche ---------//
function textLoadComplete(event:Event):void {
    // Récupération du résultat & conversion en 'string'
    var s_htmlText:String=textLoader.data.toString();
    // Découpage de la chaîne de <body> à </body>
    s_htmlText=s_htmlText.substring(s_htmlText.indexOf("<body>"),s_htmlText.lastIndexOf("</body>"));
    tx.condenseWhite=true;// ignore les blancs
    tx.htmlText=s_htmlText;// affichage du texte dans tx (tx est un texte dynamique)
}

//--------- CSS chargée => on applique la css à tx
function cssLoadComplete(event:Event):void {
    var sheet:StyleSheet = new StyleSheet();// Création d'un objet css
    sheet.parseCSS(cssLoader.data); // Parse le css
    tx.styleSheet=sheet; // Application de la css à tx
}

le 14 avril 2010

Merci beaucoup à toi !

(PS : j'avais déjà le chargement d'un CSS en AS2 )

Et oui, il faudrait que je me mette à l'AS3, mais uprgader pour la version supérieure c'est cher, et j'ai vraiment la flemme en plus de bosser comme un fou pour changer.

le 15 avril 2010



Ajoute un commentaire !

Ajouter une image... Trouvée sur internet » De mon PC »
Adresse URL :
Adresse de la page de la vidéo :
Taille du texte :
Couleur du texte :
Aide informatique


Publicité






Publicité

Article lu 3785 fois.