Forums Développement Multimédia

Aller au contenu

URLRequest URLLoader php/as3/css

URLLoader URLRequest PHP AS3 CSS CODE Actionscript

7 réponses à ce sujet

#1 angeredil

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 08 October 2012 - 14:45 PM

Bjr,

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

Il suffit d'un URLRequest et URLLoader qui permettent de charger le fichier .php dans un champs de texte (classic et dynamique), Même méthode si on veut charger la css.

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 calendrier.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 mon calendrier affiche ses infos à la suite sans structure, ni style...

Mon but était de charger le tout comme une page web, dans un champs de texte flash.

Devrais-je changer ma méthode as3, php, css !?

++∞
La patience est l'écho du temps !

#2 Galacta

    Etudiant Ingénieur

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 689 messages

Posté 08 October 2012 - 17:10 PM

Salut,

Qu'est ce que tu entends par " je charge le php " ? Tu charges le code ( le texte du .php ) ou tu récupères du contenu de ton serveur dans Flash ?
Word hard, play hard.

#3 Broutous

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 101 messages

Posté 08 October 2012 - 19:20 PM

Salut,

Je pense que les CSS doivent être chargées de l’extérieur et appliquées à un champ texte déjà rempli. De mémoire, j'ai déjà eu pas mal de soucis rien qu'en chargeant une feuille de style externe en l'appliquant à un TextField, alors que tout marchait très bien en ajoutant mes règles CSS en dur dans une variable typée String. Un casse tête me semble-t-il, alors un peu compliqué à mon avis de charger un fichier html (même préprocéssé (hem...)) contenant déjà ses propres règles et d'attendre qu'elles soient appliquées dans Flash.

Quel pessimiste :roll:
"Regardez-moi ça ! J'ai de la corne sur les doigts on dirait des pieds..."

#4 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 08 October 2012 - 19:55 PM

pour info :

Citation

Flash Player prend en charge un sous-ensemble de propriétés dans le cadre de la spécification CSS1 d’origine (www.w3.org/TR/REC-CSS1). Le tableau suivant présente les propriétés et les valeurs de la feuille de style en cascade (CSS) prises en charge, ainsi que les noms de propriétés ActionScript correspondants (chaque nom de propriété ActionScript est tiré du nom de propriété CSS correspondant. Si le nom contient un trait d’union, le trait d’union est omis et le caractère suivant est une majuscule).


http://help.adobe.co...StyleSheet.html

#5 angeredil

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 09 October 2012 - 11:31 AM

Bjr,

Je ne pensais avoir de réponses, ni tant de réponses participatives.
Je vous remercie.

Pour répondre à Galacta, je charge le fichier .php qui est interpétré et me renvoi les données contenus dans les variables (pour être plus explicite, par exemple au lieu d'avoir $month, cela m'affiche octobre, $day, mardi....je ne récupère pas le code écrit).

Pour répondre à Broutous, je n'ai pas charger de html, je n'arrivais pas à récupérer mon contenu .php avec. J'utilise directement un fichier .php.
J'appelle ma CSS depuis flash avec URLLoader et URLRequest. J'utilise aussi stylesheet pour créer un objet. Je load ma feuille de style, je parse CSS et j'applique la CSS au texte avec stylesheet.

Pour répondre à Goabonga, merci pour le lien CSS1 qui me sera vraiment très utile. Á potasser !
Comme dit à Broutous, j'utilise stylesheet et pourtant rien...

• Voici une bribre de code


//PHP  
var textLoader:URLLoader = new URLLoader();
var textReq:URLRequest=new URLRequest('http://domaine.fr/dossierdusite/calendrier/insertioncalendrier.html.php');
textLoader.load(textReq);
//CSS
var calsheet:StyleSheet = new StyleSheet();
var cssLoader:URLLoader = new URLLoader();
var cssReq:URLRequest=new URLRequest('http://domaine.fr/dossierdusite/calendrier/include/style.css');
cssLoader.load(textReq);
//chargement du texte, conversion des données en chaîne et affichage
textLoader.addEventListener(Event.COMPLETE, textLoadComplete);
function textLoadComplete(event:Event):void {
        // récupération du résultat et conversion en chaîne
        var calHtmlText:String=textLoader.data.toString();
        // découpage de la chaîne
        calHtmlText=calHtmlText.substring(calHtmlText.indexOf("<body>"),calHtmlText.lastIndexOf("</body>"));
        textes.condenseWhite=true;
        textes.htmlText=calHtmlText;// affichage dans le texte dynamique
}
//chargement css
cssLoader.addEventListener(Event.COMPLETE, cssLoadComplete);
function cssLoadComplete(event:Event):void {
        calsheet.parseCSS(cssLoader.data);
        textes.styleSheet=calsheet; // css appliqué au texte
}
 

J'appelle aussi les classes css, texte, loader, la déclaration de domaine et l'affichage...

• Voici le résulat que cela me donne lors de la compilation de mon .swf avec flash
[attachment=103758:calendrier.tiff]

J'ai peut-être une erreur quelque part.

En même temps pas facile le test dans flash en local qui appel les liens sur le serveur. Etant donné que j'ai une base MySql derrière, je veux faire évoluer tout cela par la suite pour que l'on puisse voir les événements...

J'ai tout de même une erreur bien connue en sortie :
SecurityError: Error #2000: Aucun contexte de sécurité n'est actif.

SecurityError: Error #2000: Aucun contexte de sécurité n'est actif.

Si cela vous donne une idée de la façon dont je dois m'y prendre pour charger cette CSS !?

++∞
La patience est l'écho du temps !

#6 angeredil

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 09 October 2012 - 11:36 AM

⤷ Pour compléter voici ma CSS


/*Calendrier*/
.header_cal
{
text-align: center;
font-weight:bold;
}
.day_with_event
{
text-align:center;
background-color: #e2e5ff;
}
.day_without_event
{
text-align: center;
}
.today_with_event
{
text-align: center;
background-color: #e2e5ff;
font-weight:bold;
}
.today_without_event
{
text-align: center;
font-weight:bold;
}
.today_with_event a, .day_with_event a
{
color:#000;
}
.navig_cal
{
text-align: center;
font-weight:bold;
}
 

La patience est l'écho du temps !

#7 Galacta

    Etudiant Ingénieur

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 689 messages

Posté 09 October 2012 - 11:59 AM

Salut,

Perso je dirais que ton script php devrait te renvoyer la liste des dépendances ... genre une variable $dependencies ="Url_de_ton_css" et tu récupères ton css avec un URLLoader et la propriété dataFormat = URLLoaderDataFormat.TEXT. tu stockes ça dans une String et tu crées une StyleSheet dynamiquement avec le contenu de la string.

Comme ça tu tiens pas compte des propriétés compatibles ou non, StyleSheet le fait pour toi.

PS : Pour les SecurityError, tu t'es pas trompé dans les extensions de fichiers ? .css / .CSS ... Ecoute IOErrorEvent si tu veux plus d'info.
Word hard, play hard.

#8 angeredil

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 11 October 2012 - 13:56 PM

Bjr,

Merci pour cette précision.

J'ai trouvé le livedocs, je test et je vous tiens au courant
http://help.adobe.co...DataFormat.html

++∞
La patience est l'écho du temps !



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP