cagoulechonchon
Messages postés35Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention18 mars 2010
-
29 mai 2008 à 17:36
lereme
Messages postés3Date d'inscriptionjeudi 21 décembre 2006StatutMembreDernière intervention29 août 2009
-
29 août 2009 à 15:12
Bonjour a vous,
Voila, je suis plutot novice dans l'actionscript flash et j'ai un gros probleme pour réaliser un site qui me tient a coeur.
Je dois réaliser un systeme de news avec un backoffice pour que la
personne du site puisse le gérer facilement. Elle va donc générer un
fichier xml qui sera importé dans flash.
Dans flash tous les titres des news seront visibles, mais pas les textes. Cest
quand on clic sur l'un des titres que la news (acompagnée d'une photo)
s'affiche.
J'imagine donc que le clic génère l'appelle de la news dans le fichier par une variable, mais je ne sais pas comment faire dans la forme..
Ca fait 3 jours que je regarde ts les forum et que je ne m'en sors pas..
lereme
Messages postés3Date d'inscriptionjeudi 21 décembre 2006StatutMembreDernière intervention29 août 2009 21 juil. 2008 à 12:54
bon et bien avec un peu de retard mais peu être encore a temp, je t'apporte ma petite réponse :
j'ai codé 2 classes, la premiere permet de lire de reconstruire et de renvoyer a un serveur un fichier XML, elle est utile a l'interface d'administration donc
et une autre, très simple permet de retrouver un noeuf xml selone son nom n'imorte ou qu'il soit dans l'arborescence:
il faudra que tu adapte un peu ces deux classes mais au final c'est assez simple :
je vois que je ne sais pas joindre des fchiers, donc il faudra que tu fasse un peu de copier coller :
la 1ere
class com.frou.ConnectBO extends Object{
//
private var path = "";
private var addListener:Function;
private var _listeners:Array;
public var broadcastMessage:Function;
public var onLoad:Function;
//
//
function loadConfig(_this) {
var xconf = new XML();
xconf.ignoreWhite = true;
xconf.onLoad = function() {
var namesAndTypes = [];
for (var i = 0; i<this.firstChild.childNodes.length; i++) {
namesAndTypes[i] = {data:this.firstChild.childNodes[i].attributes.type, label:this.firstChild.childNodes[i].attributes.nom};
}
_this.broadCast("onLoad", namesAndTypes);
};
xconf.load(path+"/config.xml");
}
//
private function broadCast(init:String, param) {
class com.frou.XMLBrowse {
private var _this;
static var urlxml = "http://macbook.home/~macbook/amrp/backoffice/contenus.xml";
//chemin du xml de contenus
var tags = new Array();
//tableau qui contiendra les noeuds XML
// déclaration des fonctions publiques
public var xml;
//Objet XML
public var onLoad:Function;
public var onReceipt:Function;
public var broadcastMessage:Function;
public var addListener:Function;
//*********************// Constructeur //*********************//
function XMLBrowse(id) {
AsBroadcaster.initialize(this);
//on initialise la methode de gestion des écouteurs
this.addListener(this);
//on ajoute un écouteur a l'objet
_this = this;
this.xml = new XML();
// on type
this.xml.ignoreWhite = true;
loadXML(id);
}
// permet de retrouver un tag dans l'objet XML
//@utiliser la syntaxe XMLBrowse.browse(nom_du_tag) : Object
//l'objet renvoyé contient une valeur de type string et un numéro (val et ID )
//
function browse(tag) {
var temp;
var num;
this.xml = this.xml.firstChild;
function cherche(mot, xml, tags) {
for (var i = 0; i<xml.childNodes.length; i++) {
tags[i] = (xml.childNodes[i]);
if (xml.childNodes[i].nodeName == mot) {
temp = (xml.childNodes[i].attributes.texte);
num = i;
}
}
}
cherche(tag, this.xml, this.tags);
return {val:temp, ID:num};
}
//Charge le XML et y cherche le tag id
//en l'absence de parametre la methode se contente de charger le xml
//et de reenvoyer sur l'ecouteur onLoad un objet vide
//
function loadXML(id) {
var th = this;
xml.onLoad = function() {
var t = th.browse(id);
th.broadcastMessage("onLoad", t);
};
xml.load(urlxml);
}
//
//reconstruit le XML sous sa forme originale en intégrant les modifications passées en parametre
//le premier parametre est la chaine a remplaçante et ke 2eme le numéro de l'entrée a remplacer du XML
//le nouveau XML est envoyé a l'adresse : textUpdate.php
//
public function rebuild(str:String, id:Number) {
var th = this;
var SXML = new XML();
var rootnode = new XMLNode(1, "contenus");
for (var i = 0; i<tags.length; i++) {
if (i == id) {
tags[i].attributes.texte = str;
rootnode.appendChild(tags[i]);
} else {
rootnode.appendChild(tags[i]);
}
}
SXML.appendChild(rootnode);
var LV = new LoadVars();
LV.xm = SXML.toString();
LV.onLoad = function() {
th.broadcastMessage("onReceipt", this);
};
LV.sendAndLoad("http://macbook.home/~macbook/amrp/backoffice/textUpdate.php", LV, "POST");
}
//
function toString():String {
return "[XMLBrowse]";
}
}
et celle de recherche enfin :
//
//François Reme - lereme@hotmail.com - 2008
//
//****************************************///////////////////////////////////////////////////////////////*******************************//
//****************************************// Etend la classe XML, renvoie un XMLNode ayant le même nom //*******************************//
//****************************************// que la chaine passée en arguments //*******************************//
//****************************************///////////////////////////////////////////////////////////////*******************************//
//
class XMLDispatcher extends XML {
private var xmlnode:XMLNode;
// Constructeur
function XMLDispatcher(url) {
// On appelle la superclasse pour que la classe XMLDispatcher
//hérite des propriétés et methodes de la class XML
super();
this.load(url);
}
//
function Browse(tag:String):XMLNode {
var T;
var TXML = this.childNodes;
var TAXML = new Array();
var PT = new Array();
TAXML[0] = TXML;
BrowseInOneLevel(0, tag);
function BrowseInOneLevel(init, mot) {
for (PT[init]=0; PT[init]<TAXML[init].length; PT[init]++) {
if (TAXML[init][PT[init]].nodeName == mot) {
T = TAXML[init][PT[init]];
}
TAXML[init+1] = TAXML[init][PT[init]].childNodes;
BrowseInOneLevel(init+1, mot);
}
return T;
}
return T;
}
// cette methode renvoie un identifiant a l'appel trace(XMLDispatcherInstance)
function toString() {
return "[XMLDispatcher]";
}
}
//
//
Voila c'est pas tout simple, si tu est completement paumé dans tout ça, je te conseille d'essayer de coder tout ça toi même, pour ça tu aura besoin, je pense :
de queques champ de textes, correspondant a chaque attributs d'un noeud xml
et a l'appui d'un bouton envoyer ce noeud est ajouté au dernier de l'ancien xml précédement chargé
ensuite, je te join mon fichier php (j'ai reçu de l'aide su flash france pour le faire, "merci geyser") qui permet a l'envoie d'une chaine de la stocker dans un fichier xml.
voila bonne chance :
le php :
<?php
cagoulechonchon
Messages postés35Date d'inscriptionvendredi 12 janvier 2007StatutMembreDernière intervention18 mars 2010 27 août 2009 à 21:57
Je reponds.. encore plus tard (pour etre honete j'avais perdu ce fil de discution !)
Je te remerci Lerem ! Mais quand je dis que je suis novice, c'est que je ne comprens pas vraiment comment integrer ce code. Y aurait-il des exemple de flash ? J'ai cherché (peut etre mal) mais je ne trouve rien. Aller un lien vers un pti tuto quoi ! Pleaaase