Kommunauty
Connexion
Inscription

Charger HTML ou PhP dans un fichier flash

le 5 avril 2009 • Flash • par Dawlin

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 :


// 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 :


//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 :


// 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é !

  
17 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 :


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

Bjr,

J'ai réussi à charger un .php dans flash CS5 (AS3).

Cependant, je reste perplexe, car, la feuille de style css n'est pas prise en compte de cette manière.

Je procède donc de la façon suivante :

Le .swf charge .php (qui contient un include header.php qui lui même contient un include style.css).

La css n'est toujours pas prise en compte, si quelqu'un a une idée ?!

Du coup flash affiche ses infos à la suite sans structure, ni style...

Si quelqu'un à une idée !?

Merci.

++?

le 15 octobre 2012

Bjr,

J'ai réussi à charger un .php dans flash CS5 (AS3).

Cependant, je reste perplexe, car, la feuille de style css n'est pas prise en compte de cette manière.

Je procède donc de la façon suivante :

Le .swf charge .php (qui contient un include header.php qui lui même contient un include style.css).

La css n'est toujours pas prise en compte, si quelqu'un a une idée ?!

Du coup flash affiche ses infos à la suite sans structure, ni style...

Si quelqu'un à une idée !?

Merci.

++?

le 15 octobre 2012

Non, aucune idée mais vu que c'est AS3 on peut pas savoir si ça vient de là ou pas ...

le 15 octobre 2012

Je te remercie.

J'ai fait mon test à partir de l'exemple de matewstqr.

J'ai l'impression que la CSS n'est pas parsé et que stylesheet n'est pas pris en compte.

J'ai ajouté la méthode URLLoaderDataFormat.TEXT, ça ne fonctionne pas.

Je m'attendais à ce que cela réagisse comme l'exemple AS2, l'ouverture de la page web dans le .swf.

Pour le coup je n'ai plus de piste...

++8

le 16 octobre 2012

Aïe. N'ayant aucune notion d'AS3, je ne peux absolument pas t'aider. C'est possible que ça ne soit plus possible en AS3 (mais ça m'étonnerait)

le 16 octobre 2012

Moi aussi, je vais tester le même .php avec la version AS2 !

le 17 octobre 2012

Bjr,

Avec l'AS2, cela ne passe pas.

Je vais essayer de modifier mes fichiers !

++8

le 22 octobre 2012



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 :

Article lu 9686 fois.