begin process at 2012 05 26 16:47:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml

jeudi 14 décembre 2006 à 02:52:13 | CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml

maxofiatpolski

En espérant que quelqu'un aura une idée car c'est hyper URGENT....
Je détaille un peu pour que tout soit clair...

Je suis en train de créer un CD-Rom Flash (donc OFFLINE) et j'utilise les fonctions suivantes pour ouvrir des fichiers pdf:

Dans flash, sur le bouton :
----------------------------------------------
on (release) {
fscommand ("exec", "nomdufichier.bat");
}
----------------------------------------------


Puis dans le fichier en question :
----------------------------------------------
@ echo off
@ start nomdevotrefichier.extension
@ exit
----------------------------------------------

Tout fonctionne bien jusque là pour des boutons pour lesquels l'ActionScript est directement dessus.

MAIS, j'utilise par ailleurs des boutons pour lesquels le code est chargé à partir d'un fichier XML. Pour que tout soit clair : j'ai un diaporama de photo et de texte qui fonctionne parfaitement et je souhaite qu'en cliquant sur l'image un fichier PDF s'ouvre (pas en utilisant la fonction getURL car ça déconne tout le temps en OFFLINE - c'est ce qui est déjà dans le code ci-dessous) en utilisant la fonction  fscommand ("exec", "nomdufichier.bat"); tout en sachant que le nom du fichier doit changer.

J'ai testé des trucs du type fscommand (exec, id[p].bat); pour lancer le fichier correspondant mais ça ne fonctionne pas. Merci d'avance à celui ou celle qui aurait une idée...

Ci-dessous le code pour que tout le monde comprenne.

----------------------------------------------
function loadXML(loaded) {

if (loaded) {

xmlNode = this.firstChild;
id = [];
titre = [];
auteurs = [];
local = [];
email = [];
resume = [];
motscles = [];
urlimage = [];
urlpdf = [];
urlmail = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {

id[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
titre[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
auteurs[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
local[i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue;
email[i] = xmlNode.childNodes[i].childNodes[4].firstChild.nodeValue;
resume[i] = xmlNode.childNodes[i].childNodes[5].firstChild.nodeValue;
motscles[i] = xmlNode.childNodes[i].childNodes[6].firstChild.nodeValue;
urlimage[i] = xmlNode.childNodes[i].childNodes[7].firstChild.nodeValue;
urlpdf[i] = xmlNode.childNodes[i].childNodes[8].firstChild.nodeValue;
urlmail[i] = xmlNode.childNodes[i].childNodes[9].firstChild.nodeValue;


}
firstImage();

} else {

content = "file not loaded!";

}

}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("data/data.xml");
/////////////////////////////////////
listen = new Object();
listen.onKeyDown = function() {

if (Key.getCode() == Key.LEFT) {

prevImage();

} else if (Key.getCode() == Key.RIGHT) {

nextImage();

}

};
Key.addListener(listen);
previous_btn.onRelease = function() {

prevImage();

};
next_btn.onRelease = function() {

nextImage();

};
/////////////////////////////////////
p = 0;
this.onEnterFrame = function() {

filesize = picture.getBytesTotal();
loaded = picture.getBytesLoaded();
preloader._visible = true;
if (loaded != filesize) {

preloader.preload_bar._xscale = 100*loaded/filesize;

} else {

preloader._visible = false;
if (picture._alpha<100) {

picture._alpha += 10;

}

}

};
function nextImage() {

if (p<(total-1)) {

p++;
if (loaded == filesize) {

picture._alpha = 0;
picture.loadMovie(urlimage[p],1);
titre_txt.text = titre[p];
auth_txt.text = auteurs[p];
resume_txt.htmlText = resume[p];
univ_txt.text = local[p];
mail_txt.htmlText = email[p];
cles_txt.text = motscles[p];
pdf_btn.onRelease = function() {
 getURL(urlpdf[p],_blank);}
mail_btn.onRelease = function () {
 getURL(urlmail[p], _blank);}
picture_num();

}

}

}
function prevImage() {

if (p>0) {

p--;
picture._alpha = 0;
picture.loadMovie(urlimage[p], 1);
titre_txt.text = titre[p];
auth_txt.text = auteurs[p];
resume_txt.htmlText = resume[p];
univ_txt.text = local[p];
mail_txt.htmlText = email[p];
cles_txt.text = motscles[p];
pdf_btn.onRelease = function() {
 getURL(urlpdf[p],_blank);}
mail_btn.onRelease = function () {
 getURL(urlmail[p], _blank);}
picture_num();

}

}
function firstImage() {

if (loaded == filesize) {

picture._alpha = 0;
picture.loadMovie(urlimage[0], 1);
titre_txt.text = titre[0];
auth_txt.text = auteurs[0];
resume_txt.htmlText = resume[0];
univ_txt.text = local[0];
mail_txt.htmlText = email[0];
cles_txt.text = motscles[0];
pdf_btn.onRelease = function() {
 getURL(urlpdf[0],_blank);}
mail_btn.onRelease = function () {
 getURL(urlmail[0],_blank);}

picture_num();

}

}


function picture_num() {

current_pos = p+1;
pos_txt.text = current_pos+" / "+total;

}




jeudi 14 décembre 2006 à 08:27:35 | Re : CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml

Girou

Membre Club
Bonjour,

concernant l'ouverture de PDF de nom différents, voici une solution plus facile que d'avoir un fichier .bat par pdf.

tu crées un répertoire fscommand à la racine de ton cd-rom
dedans tu mets tous tes pdfs

et un fichier pdf.bat (fichier texte dont tu renommes l'extension) contenant ceci :
start %1
exit

ensuite depuis flash, tu utilises fscommand()

fichier="pdf.bat"+chr(9)+pdfToOpen
fscommand("exec",fichier)


où pdfToOpen est le nom du fichier pdf à ouvrir
Attention : évite les espaces, les _ les points,.. dans tes noms de fichiers pdfs (c'est du DOS qui va s'exécuter ne l'oublions pas)

Le principe, c'est de passer en parametre au fichier batch le nom du fichier à ouvrir

Dans ton cas, tu change ta fonction pdf_btn.onRelease = function() {  par


pdf_btn.onRelease = function() {
    fichier="pdf.bat"+chr(9)+urlpdf[p]
    fscommand("exec",fichier)
}

Bien entendu, il faut que acrobat reader soit installé sur l'ordinateur de la personne qui utilise le CD-ROM.


P.S. vérifie tout de même avec un trace(fichier) si tu à le bon nom de pdf à ouvrir car je ne demande si tu ne va pas avoir un problème de ciblage avec le p de urlpdf[p] dans la fonction pdf_btn.onRelease

@+

signature not found
jeudi 14 décembre 2006 à 13:11:37 | Re : CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml

maxofiatpolski

Merci beaucoup pour ton éclairage. Je vois bien le principe maintenant, même si ça ne fonctionne pas encore lol.

J'ai vérifié comme tu le proposais avec un trace et de ce côté là tout à l'air ok, en sortie, j'ai  :

pdf.bat data/pdf/01.pdf

et tous les fichiers sont bien à leur place.

- le fichier pdf.bat dans fscommand/
- les fichiers pdf dans data/pdf/

As-tu une idée ?
jeudi 14 décembre 2006 à 14:57:35 | Re : CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml

Girou

Membre Club
Oui, j'ai une idée...

reprend mon post précédent et tu y trouveras :

tu crées un répertoire fscommand à la racine de ton cd-rom
dedans tu mets tous tes pdfs

Je me suis peut-être mal exprimé : tes pdf doivent ce trouver dans ce répertoire (fscommand) et pas dans un sous répertoire

@+

signature not found
jeudi 14 décembre 2006 à 15:14:05 | Re : CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml

maxofiatpolski

Le problème ne vient pas de là, maintenant (j'avais déjà testé avant)...
         - mes fichiers pdf sont bien dans fscommand/
         - un fichier pdf.bat est bien dans fscommand/
         - sous Flash : 
pdf_btn.onRelease = function() {
fichier="pdf.bat"+chr(9)+urlpdf[p]
fscommand("exec",fichier)
}


Et le trace indique bien le bon fichier à ouvrir..

pdf.bat 01.pdf

Je continue de chercher...

jeudi 14 décembre 2006 à 15:20:28 | Re : CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml

Girou

Membre Club
Hem...

tu crées bien un executable à la publication de ton swf ?

@+

signature not found
jeudi 14 décembre 2006 à 15:46:09 | Re : CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml

maxofiatpolski

oui, bien sûr...

Franchement, je ne vois pas ce qui coince....

Tu es sûr du code pour le fichier .bat ?
jeudi 14 décembre 2006 à 16:23:38 | Re : CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml

maxofiatpolski

J'ai mis le fichier en ligne dans un .rar : [ Lien ]

Si tu as le temps et que tu es motivé....
vendredi 15 décembre 2006 à 17:32:13 | Re : CD-ROM: Ouvrir un fichier dans son application d'origine à partir d'un xml

Girou

Membre Club
Hello,

le script et le fichier .bat sont bon, testé indépendament cela fonctionne.
Mais, apparement, depuis flash 7 (sans doute) et flash 8 certainement, il y a un probleme de sécurité qui bloque ce genre de commandes. J'ai pas tout saisi en parcourant des forum ou les explications de sécurité de Marcomedia..... heu pardon, Adobe mais il semble que ce ne soit plus directement possible comme c'était le cas avec Flash 6

En fait, si tu exporte ton exe depuis flash MX (pas en version 6 depuis MX2004 ou Flash8) alors ca doit fonctionner... mais ca implique d'avoir une ancienne version de Flash qui traine sur ton ordinateur.

Maintenant, il existe des applications qui étendent les fonctionnalité de flash (pour les executable), ca serait peut être une idée d'aller regarder de ce coté là.
Genre MDM studio (www.multidmedia.com) ou jugglor (www.flashjester.com/)

@+

signature not found


Cette discussion est classée dans : text, function, txt, childnodes, picture


Répondre à ce message

Sujets en rapport avec ce message

aller a la frame (x) par le biais d'un fichier xml [ par grosbleu ] Salut a tous, j'aurai besoin d'un conseil, voila mon problème, j'ai récupéré un code sympa de galerie dynamique xml et je veux remplacer les instructi le traitement de formulaire [ par gibeuse ] Bonjour , j'ai crée et animer mon formulaire ... j'ai fais tout ce que je pensai faire correctement ... comme dans mes autres formulaires mais la ca loader differentes section dans un meme xml [ par west001 ] bonsoir,j'ai un probleme pour charger différentes parties dans un meme xml. Le code fonctionne tres bien, mais il me charge toujours la partie entre Problème Scrollbar, Xml et container [ par djichtus ] Bonjour à tous, je développe une carte de france interactive pour un client. Je fais appel à un fichier XML qui répertorie les données et que je char a l'aide ! comment charger une variable depuis un fichier txt [ par kwcri ] Salut j'essaie en AS2 de charger une variable depuis un fichier txt mais ca ne marche pas... voila ce que j'ai fait: j'ai creer un fichier text dans AS3 problème de détection des touches de clavier sur une seconde scène [ par cb3 ] Bonjour, J'ai quelques soucis avec un programme Flash. Je me suis créer 2 scènes différentes; la première où il y a de multiples calques permettant d comment faire sortir un tableau d'une function [ par yasdar ] la function fait remplir le tableau par du text ( inputtext) var tableau:Array = new Array(); function abc (event:MouseEvent):Array { tableau.push( Panier d'achat flash [ par fabien493 ] Bonjour Ayant besoin d'un panier d'achat pour un site web, j'ai enfin trouver ce qu'il me fallait. Malheureusement, j'ai un problème pour afficher les Formulaire E-mail Flash et PHP ?? [ par fregones ] Bonjour à tous, Je suis débutant. J'ai récupéré un template Flash pour site ; mais, malheureusement, le formulaire Contact ne fonctionne pas. C'est à Stocker différentes variables d'une boucle dans un tableau et les reclasser [ par LoganKyles ] Bonjour à tous[^^clinoeil1] J'ai besoin de vos lumières pour mettre en place un bout de code. Pour simplifier j'aimerai créer un tableau dans lequel


Nos sponsors


Sondage...

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 : 0,827 sec (3)

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