Bonjour à tous,
Voilà je vous explique, je souhaiterai afficher l'actualité en continu sur mon site en flash, et pour cela je charge les données dans un fichier texte. Mon problème est le suivant, je n'arrive pas à afficher le contenu avec l'animation.
Sans l'animation (actionscript) cela marche.
C'est la fonction dmcLoadVars.onLoad = function(reussit){ }
qui me pose problème et pourtant j'en est besoin.
Comment puis-je résoudre ce problème ?
Flash :
//////////////////////////////////////////////////////////////////////////////////////////////////////////
Dans la scène j'ai placer un champ avec l'occurrence "myField".
Actionscript :
//////////////////////////////////////////////////////////////////////////////////////////////////////////
var dmcLoadVars = new LoadVars();
dmcLoadVars.load("texte.txt");
dmcLoadVars.onLoad = function(reussit){
//Animation avec les 2 variables
var txt1:String = dmcLoadVars.actus1;
var txt2:String = dmcLoadVars.actus2;
myField.text= txt1;
changeFieldText( myField, txt1, txt2 );
function changeFieldText( field :TextField, newText :String, oldText :String )
:Void{
var i :Number= 0 ;
var n :Number= newText.length ;
this.onEnterFrame= function()
:Void{
var label :String= myField.text ;
var prev :String= newText.substr(0,i) ;
var next :String= oldText.substr(i) ;
myField.text= prev+next ;
i++ ;
if( i> n+100 ) {
if( myField.text== newText ) changeFieldText( myField, oldText, newText, reduce ) ;
else changeFieldText( myField, newText, oldText, reduce ) ;
}
}
}
}
Je suis sur que cette ligne "dmcLoadVars.onLoad = function(reussit){" est la cause de mon problème.
S'il vous plait aider moi !
Mon problème doit sans doute être simple à régler !
Au contraire, c'est une variable qui te permet de savoir si il arrive bien à lire ton fichier:
dmcLoadVars.onLoad = function(reussit){
if(reussit){
//Animation avec les 2 variables
var txt1:String = dmcLoadVars.actus1;
...
} }
Par contre, je vois que ton fichier texte ne possede pas les memes variables que celle que cherche ton flash... Est ce que tu as ecrit trop vite?
Pareil: est ce que ton fichier texte est enregistré au format UTF8?
Et pour une question de logique, il est plus intelligent de faire passer "dmcLoadVars.load("texte.txt");" APRES le dmcLoadVars.onload.
Quand je lis ton truc, je vois pas de probleme particulier. Donc ça vient pas de ce que tu penses, mais plutot d'un couillage au niveau de l'adressage ou des bonnes variables... En tout cas en jetant un coup d'oeil comme ça, c'est ce qui me vient...
Mais le système de récupération de variable fonctionne très bien.
Essayé ceci vous verrez :
Flash :
//////////////////////////////////////////////////////////////////////////////////////////////////////////
Dans la scène, placer deux champs, un avec l'occurrence "affichage1", puis un autre avec l'occurrence "affichage2".
Actionscript :
//////////////////////////////////////////////////////////////////////////////////////////////////////////
var dmcLoadVars = new LoadVars();
dmcLoadVars.load("texte.txt");
dmcLoadVars.onLoad = function(reussit){
affichage1.text = dmcLoadVars.actus1;
affichage2.text = dmcLoadVars.actus2;
}
--------------------------------------------------------------------------------
Chez moi il n'y a aucun souci, Sa fonctionne bien !
"Pareil: est ce que ton fichier texte est enregistré au format UTF8?"
Réponse : non, mon fichier est encodé en ANSI.
Pour ce qui est de l'animation elle marche également bien.
Essayé ceci :
Flash :
//////////////////////////////////////////////////////////////////////////////////////////////////////////
Dans la scène, placer un champ, un avec l'occurrence "myField".
Actionscript :
//////////////////////////////////////////////////////////////////////////////////////////////////////////
var txt1:String = "Message1";
var txt2:String = "Affichage 2";
myField.text= txt1;
changeFieldText( myField, txt1, txt2 );
function changeFieldText( field :TextField, newText :String, oldText :String ):Void{
var i :Number= 0 ;
var n :Number= newText.length ;
this.onEnterFrame= function()
:Void{
var label :String= myField.text ;
var prev :String= newText.substr(0,i) ;
var next :String= oldText.substr(i) ;
myField.text= prev+next ;
i++ ;
if( i> n+700 ) {
if( myField.text== newText ) changeFieldText( myField, oldText, newText, reduce ) ;
else changeFieldText( myField, newText, oldText, reduce ) ;
}
}
}
--------------------------------------------------------------------------------
Donc l'animation marche également !
Maintenant il faut mixer les deux pour afficher les actus du ficher texte avec l'animation.
Pour récupérer les deux actus, je dois impérativement utiliser " dmcLoadVars.onLoad = function(reussit){} ", ce qui m'oblige à mettre mon code d'animation à l'intérieur de la function(reussit) .
Voici le code sur lequel donc je bloque :
Flash :
//////////////////////////////////////////////////////////////////////////////////////////////////////////
Dans la scène j'ai placer un champ avec l'occurrence "myField".
Actionscript :
//////////////////////////////////////////////////////////////////////////////////////////////////////////
var dmcLoadVars = new LoadVars();
dmcLoadVars.load("texte.txt");
dmcLoadVars.onLoad = function(reussit){
//Animation avec les 2 variables
var txt1:String = dmcLoadVars.actus1;
var txt2:String = dmcLoadVars.actus2;
myField.text= txt1;
changeFieldText( myField, txt1, txt2 );
function changeFieldText( field :TextField, newText :String, oldText :String )
:Void{
var i :Number= 0 ;
var n :Number= newText.length ;
this.onEnterFrame= function()
:Void{
var label :String= myField.text ;
var prev :String= newText.substr(0,i) ;
var next :String= oldText.substr(i) ;
myField.text= prev+next ;
i++ ;
if( i> n+100 ) {
if( myField.text== newText ) changeFieldText( myField, oldText, newText, reduce ) ;
else changeFieldText( myField, newText, oldText, reduce ) ;
}
}
}
}