begin process at 2012 05 26 03:44:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > CHARGER UNE PAGE HTML DANS UNE ANIMATION FLASH

CHARGER UNE PAGE HTML DANS UNE ANIMATION FLASH


 Information sur la source

Note :
6 / 10 - par 2 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Classé sous :html, split, kennyblog, ondata, loadvars Niveau :Initié Date de création :11/02/2007 Vu / téléchargé :30 064 / 4 685

Auteur : x_mec

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note


 Description

Comment inserer une page html dans une animation flash ?
------------------------------------------------ --------

>>>Et bien c'est impossible !



Enfin dans le sens strict du terme, flash ne peut pas simuler le comportement d'une iframe ! Mais je vous rassure, on peut tout de mème réussir à charger une page html et a en affiché le contenu. Par contre, votre animation ne reconnaitra que les balises natives de Flash. Donc aucunes balises exotiques, ni de div personnalisées, juste la base ...

Mais on peut quand mème réussir à manipuler le code source de la page chargée, pour en isoler certaines infos, ou pour se faire sa propre mise en forme pour palier aux manques de balises de flash.



Pour l'exemple:
---------------
    Dans les 2 exemples du zip, j'ai utilisé un fichier "test.html" se trouvant dans le mème dossier que mon swf. Il faut savoir que pour pouvoir charger un fichier distant (autre domaine), il vous faudra ruser en passant par un fichier php.
    Cette methode de contournement, je l'explique dans cette autre billet: Charger un fichier distant

    Je vous invite à lire le billet en question après avoir assimilé ce billet-ci ;)


Utilisation de loadvars
-----------------------
    Pour recuperer le code source de notre page html, on va evidement utiliser la classe loadvars, qui permet de loader casi n'importe quel fichier dans flash.

    Usuellement, si vous vous ètes déjà servi de loadvars, vous savez que l'on se sert de l'evenement "onLoad" pour savoir si le fichier a bien été chargé, et executé notre code seulement à partir de ce moment.

    Et bien dans notre cas, on va utiliser un autre evenement, car "onLoad" va interpéter les données chargées (comme les variables de type "&mavar=montexte&autrevar=autre texte&"), ce qui evidement ne nous interèsse pas, etant donné que notre but c'est de recuperer le code sources de la page sans aucune interpretation.

    Donc pour mes exemples, je vais utiliser l'evenement "onData":

        "Invoqué lorsque les données ont été totalement téléchargées à partir du serveur ou lorsqu'une erreur se produit au cours du téléchargement des données à partir d'un serveur. Ce gestionnaire est invoqué avant l'analyse des données et peut être utilisé pour appeler une routine d'analyse personnalisée au lieu de celle intégrée à Flash Player"

    (La routine integrée à Flash est l'evenement "onLoad")

Source

  • /********************************************************
  • Creation et paramètres du champs de texte recepteur
  • *********************************************************/
  • //Creation du champs de texte
  • var txt_html:TextField = this.createTextField("txt_html", this.getNextHighestDepth(), 0, 0, Stage.width, Stage.height);
  • //Champs de texte multiligne
  • this.txt_html.multiline = true;
  • //On active le retour à la ligne automatique
  • this.txt_html.wordWrap = true;
  • //On supprime les blancs inutiles
  • this.txt_html.condenseWhite = true;
  • //On active le rendu html
  • this.txt_html.html = true;
  • /********************************************************
  • Chargement de la page html et traitement des données
  • *********************************************************/
  • //On crée une reference à _root (pour le ciblage)
  • var root:MovieClip = this;
  • //On crée une nouvelle variable de chargement
  • var lorem_lv:LoadVars = new LoadVars();
  • //lorsque "lorem" est invoqué
  • this.lorem_lv.onData = function(src:String):Void {
  • if (src != undefined) {
  • //si le fichier html est chargé alors...
  • root.txt_html.htmlText = src;
  • } else {
  • //et si le ficher html n'est pas trouvé
  • root.txt_html.htmlText = "Impossible de charger le fichier";
  • }
  • };
  • //Url a charger
  • this.lorem_lv.load("test.html");
/********************************************************
 
  Creation et paramètres du champs de texte recepteur
  
*********************************************************/
//Creation du champs de texte
var txt_html:TextField = this.createTextField("txt_html", this.getNextHighestDepth(), 0, 0, Stage.width, Stage.height);
//Champs de texte multiligne
this.txt_html.multiline = true;
//On active le retour à la ligne automatique
this.txt_html.wordWrap = true;
//On supprime les blancs inutiles
this.txt_html.condenseWhite = true;
//On active le rendu html
this.txt_html.html = true;
/********************************************************
 
  Chargement de la page html et traitement des données
  
*********************************************************/
//On crée une reference à _root (pour le ciblage)
var root:MovieClip = this;
//On crée une nouvelle variable de chargement
var lorem_lv:LoadVars = new LoadVars();
//lorsque "lorem" est invoqué
this.lorem_lv.onData = function(src:String):Void  {
	if (src != undefined) {
		//si le fichier html est chargé alors...
		root.txt_html.htmlText = src;
	} else {
		//et si le ficher html n'est pas trouvé
		root.txt_html.htmlText = "Impossible de charger le fichier";
	}
};
//Url a charger
this.lorem_lv.load("test.html");

 Conclusion

Je joint un zip avec 2 exemples. Celui ci dessus, et un autre plus complexe qui permet par exemple de sortir et d'afficher tous les liens contenu dans le code source d'une page html




1er exemple (ci-dessus):
Cet exemple va donc creer un champs de texte au format html, et y placer le contenu de la page "test.html"
Vous allez vite vous rendre compte des limites de l'interpretation html de flash. La casi totalité de la mise en forme à disparue, et en plus les images sont alignés à gauche.



2ème exemple (dans le zip):
Dans cette exemple, je recupère tous les liens se trouvant dans le code source de ma page "test.html" via la fonction split. Puis je les insère dans notre champs de texte.
Donc à vous de ruser pour retirer les infos dont vous avez besoin ;)




Ps: Plus d'infos sur http://blog.ka-studio.net/index.php?2007/02/10/26- flash-loading-loader-charger-afficher-page-html

P s2: un tuto sur comment charger un fichier d'un autre domaine en passant par dessus la securiète interdomaine de flash arrive dans quelques minutes ...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip CHAMPS DE SAISIE AMELIORÉ
Source avec Zip Source avec une capture POLLKA - SONDAGE EN FLASH/PHP/XML
Source avec Zip CHARGER UN FICHIER DISTANT (SANS CROSSDOMAIN)
Source avec Zip CONTROLE DU FLOOD VIA FLASH ET SHARE OBJECT
Source avec Zip Source avec une capture AFFICHAGE D'UN LOADING PRINCIPAL SOUR FORME DE TEXTE, AVEC B...

 Sources de la même categorie

TRANSFERT DE DONNÉES FLASH <-> PHP - PETITE SUBTILITÉ AVEC J... par Loubiou
Source avec Zip LECTURE DE TEXTE "VOICE" par yasdar
Source avec Zip Source avec une capture AS3 - PRINCIPE ET APPLICATION DE FONCTION RÉCURSIVE par pegase31
Source avec Zip Source avec une capture UN PACKAGE "HISTORIC" POUR GÉRER VOS COMMANDES par top30
Source avec Zip Source avec une capture AS3 - SIMULATION DE GRILLE D'ÉDITION par pegase31

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CONCEPT BROWSER : NAVIGATEUR EN MODE TEXTE par mouloudikhaled
DETECTEUR AUTOMATIQUE DE MEDIA AS3 - AS2 par ourso
Source avec Zip GÉRER UNE IFRAME AVEC UN MENU FLASH par shade001
Source avec Zip Source avec une capture DÉCODER DES CODES HTML PARMIS D'AUTRES ! (AS2) par Loubiou
Source avec Zip CHARGER UN FICHIER DISTANT (SANS CROSSDOMAIN) par x_mec

Commentaires et avis

Commentaire de alise le 11/02/2007 18:15:22

Ben x_mec c'est pas vraiment une nouveauté, on peut charger une page html depuis mx2004, voir :

http://www.flashforum-oi.info/viewtopic.php?t=365
et
http://www.flashforum-oi.info/viewtopic.php?t=168

Commentaire de x_mec le 11/02/2007 18:29:10

J'aime ce site ! A cahque fois que je poste une source j'ai droit a des petites reflexion au autres ....

Ne le prend pas pour toi Alise, mais je voulais juste souligné le fait que certaines remarques enlève toute motivation d'aider et de partager ...


Sinon pour te répondre:

Oui je sais que l'on peu charger une page html depuis pas mal de temps. Mais ...

-je n'ai pas vraiment trouvé de sources à ce sujet sur CE site
-je n'ai pas pu allez voir les 2 liens que tu as fourni (login), mais de mon coté, j'essaye d'avoir le code le plus clair et precis possible. (des fois rien que ça justifie de poster une source qui existe déjà, quand on voit certain code ...)
-je traine pas mal sur d'autre forum flash, et c'est une question qui revient sans cesse ! Crois moi, ce n'est pas parceque cette fonction existe depuis des lustres que les gens savent s'en servir !
-j'ai en plus fourni une petite explication, expliquant la difference de l'evenement ondata par  rapport  a onload. Ce qui est justifié aux vues des avantages que pourrais fournir ondata.
-j'ai mis un 2ème exemple dans le zip, qui en plus du chargement de la page, donne un debut de piste pour pouvoir parser des données contenues dans le code source de la page.
-etc, etc ....


Merci de prendre en consideration ces points ainsi que le temps que j'ai passé à faire ce tuto.

Cordialement

Commentaire de alise le 11/02/2007 18:44:49

X-Mec
ce n'est pas du tout une attaque contre toi, ni contre ta source, et je tire toujours mon chapeau à ceux qui passent du temps et qui se "cassent le bonnet" à faire des sources et des tutos, pour faire part et partager le savoir et je n'ai surtout pas voulu t'agresser, les réflexions "vaches" ou "vexatoires" ne sont pas de mon genre, ni plus de mon age.
Et je suis tout à fait d'accord avec toi sur le fait que :"""ce n'est pas parceque cette fonction existe depuis des lustres que les gens savent s'en servir !"""

Malheureusement, c'est vrai que beaucoup ne vont pas approfondir, ne serait-ce que les exemplex fournis avec flash et l'aide en ligne de Flash.

http://www.flashforum-oi.info/tut/flashTextHtml/textHtmlLoader.html
et
http://www.flashforum-oi.info/tut/TextCss/styleCss.html
sans passer par l'inscription, etc, etc

Commentaire de x_mec le 11/02/2007 18:57:44

Pas de soucis Alise, je te l'ai dis, mon commentaire n'est pas forcement contre toi. J'ai un peu tendance à demarrer au quart de tour, mais c'est jamais bien grave.


Comme tu le soulignes, peu se servent des moyens mis à leur disposition, que se soit par manque de temps, parfois d'ignorence ou de feineantise (et oui, je connais, je suis moi-mème feignant). La plupart des informations que j'ai donné dans ces explications proviennet tout droit de la doc de flash.


Au gros mon code va surtout servir à aiguiller est à ouvrir les yeux à certains. Mème si celà existe "en mieux" sur le web, celà permet d'eclaircir la marche à suivre ;)


Oui sympa les 2 liens, ils pourraient tout à fait servir de "complement" à mon code. Car moi j'aiguille surtout sur la manière de recuperer une source html, et tes liens appuis surtout la mise en forme de texte html.


Voilà, plus d'ambiguités possible comme ça ;)


Merci pour tes commentaires, et bonne soirée

Commentaire de alise le 11/02/2007 19:01:12

bonne soirée à toi, chez moi 22 heures 8-)

Commentaire de osomon le 28/03/2007 17:15:17

Ne fonctionne pas avec un fichier php ! Pouvez-vous m'aider ?
En fait je n'es qu'une partie de mon document! le contenu généré par le php ne fonctionne pas!

Merci d'avance.

Commentaire de alise le 28/03/2007 20:21:35

Bonsoir osomon,
à ce jour ça ne fonctionne pas avec un fichier php, chacun a ses limites,ça ne fonctionne pas avec php, ni asp, ni jsp, etc, etc.

Mais on peut insérer du php dans du html, tout dépend de ce que tu veux faire en définitive !

Commentaire de flashnew le 03/05/2007 11:57:46

Merci X_MEC pout yon tuto, vraiment pas mal.
J'ai besoins d'intégrer les pas htm dans mon animation et tu m'as beaucoup aidé.
Par contre j'aiamrais bien savoir si il y a varaiment pas de moyen de gérer les balises div.
En fait, j'ai besoins d'afficher le contenu de la balise div - image que je n'arrive pas à charger dans mon swf...

Une idée?

Commentaire de x_mec le 03/05/2007 12:17:18

Et bien tu peux gerer un peu ce que tu veux, comme tu recupère tout le code source, c'est a toi de faire un rechreche dans la chaine (comme l'exemple avec les liens), tu cherches la balise que tu veux et tu delimites (.split et .join).

E si tu as accès au page html (template), tu peux carement y placer des delimiteur perso (genre un commentaire html)

Commentaire de flashnew le 03/05/2007 13:37:25

Merci pour ton conseil !
Ton idée de réliser cela est varaiment bien et je vois comment tu veux faire - bref pour le principe pas de soucie, par contre pour créer mon code j'ai un peu du mal, si tu peux encore répondre à mes questions...

Toi tu charges tes liens dans un champ de texte ? Correcte?
Moi si je veux charger les images, je crée un clip vide ?

'Faire la recherche dans la chaine' , comment programmer ça? Pour trouver ma balise je mets : root.lien = src.split("<div"");

par contre .join j'ai pas trouvé dans ton script...

Merci

Commentaire de pierrojava le 21/05/2007 22:02:24

euh...dis moi, c'est pas compatible avec as2 ca...
tu n'aurais pas une version pour flash MX 2004 ?
non ? dommage...

merci quand meme ^^

pj

Commentaire de pierrojava le 05/06/2007 18:37:38

non, franchement, tu n'as pas une solution pour flash 7 ?
merci

Commentaire de fabolousk le 05/04/2009 22:57:15

J'ai essayer de suivre vos demarche, mais comme c'est une page sur internet, j'ai juste changer le lien test.html en lien http://....//page.html mais ca affiche ke des textes.. esceke ya un moyen de tout afficher la page correctement dans un fichier flash ???

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Importation Page HTML dans un LoadVars [ par soak ] Salut tout le monde,J'ai un pb : Je charge un LoadVars avec une adresse web située sur le même domaine, il me recupere bien le contenu HTML de la page Intégrer de l'HTML dans flash [ par Cyberdevil ] Hi !Döbutant sous flash (mx), je voudrait savoir comment faire pour afficher une page HTML au milieu de flash.. genre tout autout de la page g un cadr Exportation HTML [ par sunshune ] Salutj'aimerais pouvoir centrer mon animation au milieu de la page HTML. je ne parviens pas a le faire. quand je publie une animation en ce format, el variable flash dans le html [ par lordmagician ] Salut,je sais que l'on peut definir des variables flash dans le code html, lors de l'appel du flash&lt;param name="bgcolor" value="#ffffff" /&gt;ma qu inserertion d'un menu flash dans une marge [ par pierrick82 ] hello,j'ai crée un menu animé que je veux insérer dans la marge gauche de ma page html. Mais je ne trouve pas le moyen de déterminer la taille de mon loadvariables ou loadvars vers une url distante [ par sisconi ] lorsque j'envoie les variables vers une url absolu vers un autre serveur où se trouve le fichier php, ça ne marche plus, faut-il que le fichierp php s loadvariables ou loadvars vers une url distante [ par sisconi ] si mon fichier php se trouve sur un autre serveur, si je rentre l'url absolu l'action loadvariables ne marche pas, y a t-il un autre moyen ?merci swf en plein ecran dans html??? [ par guilastro ] bonsoir,je souhaiterais lancé un swf en plein ecran d'apres un lien html, le pb: le preloader que j'ai mis ne sert a rien car je dois attendre que je bouton flash et html [ par voidmain ] Bonjour,Je débute en flash, j'ai fait un menu de 3 boutons qui vont s'intégrer dans une page html. Ce que je voudrais faire:chaque bouton correspond à var Flash -> Php [ par buibui25 ] BuiBuidonneesEnvoyees = new LoadVars ();donneesRecues = new LoadVars ();message = "unMessageXml";// J'encode le message en url afin de passer les cara


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,342 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales