Comunidad de diseño web y desarrollo en internet online

Modificar variables desde un XML

Citar            
MensajeEscrito el 12 Oct 2006 01:45 pm
Hola: estoy empezando a querer manejar de a poco XML con Flash... me lei un tutorial muy bueno para armar un noticiero con textos y fotos, la verdad que me resultó muy clarisisisismo. Ahora quiero complicarme un poco más...

como hago para editar una variable del action scrip de Flash pero desde xml? como se armaría??? ... lo que tengo específicamente es esto:

Código :

loadMovieNum("panel_concurso_" add (1+random(9)) add ".swf", 1);


esto en un scrip para cargar aleatóreamente varios swf... es una pagina donde todas las semanas subo concursos nuevos y siempre están aumentando la cantidad de sorteos... donde dice (1+random(9) es el número de swf que hacen random... aveces subo por ejemplo dos concursos mas a la vez y tengo que poner 11 swf que hagan random y tengo que modificar el fla publicarlo y subirlo... lo que quiero logar es que desde un xml externo pueda modificar el número de ramdon y controlar ese valor desde el xml y subir solo este.

Como puedo hacerlo??.. alguien tan amable me explicaría!??

Desde ya muchisimas gracias! ^^

Saludos

Por paraguila

189 de clabLevel



Genero:Femenino  

Argentina

msie
Citar            
MensajeEscrito el 12 Oct 2006 06:30 pm
En tu XML (concursos.xml) lo siguiente:

Código :

<?xml version="1.0" encoding="ISO-8859-1"?>
<concursos>
   <cantidad>11</cantidad>
</concursos>


En Flash...

Código :

function CargarSWF(){
       var xmlConcursos:XML = new XML();
       xmlConcursos.ignoreWhite = true;
       xmlConcursos.onLoad = function(exito:Boolean){
              if(exito){
                   numero = xmlconcursos.firstChild.childNodes[0].firstChild.nodeValue;
                   loadMovieNum("panel_concurso_" + (1+random(numero)) + ".swf", 1);
             }
       }
       xmlConcursos.load"(concursos.xml");
}

CargarSWF();


Aunque la verdad para esa información que quieres manejar, se me hace de mas hacerla en un XML, pues quedaria muy bien en un archivo de texto y utilizar LoadVars para obtener el valor que necesitas, pero en fin espero que te sirva. Por otro lado te recomiendo que para concatenar utilices el operador de concatenacion (+), ya que la instruccion "add" es para versiones viejitas de actionscript. Son solo sugerencias, no quiero decir que sea asi!, saludos

Por heberto

263 de clabLevel

1 tutorial

1 ejemplo

 

Morelia, Michoacán

safari
Citar            
MensajeEscrito el 12 Oct 2006 07:28 pm
hebertooooo! geniooo gracias!!!!!... ya voy a probar y te digo como me fue... en realidad quiero hacer xml porque voy a poner no solo esa funcion sino textos fotos, etc que eso ya lo tengo claro.. solo me faltaba saber como modificar un código... lo de add vos me decis que tendría que quedar asi??

Código :

loadMovieNum("panel_concurso_" + (1+random(9)) + ".swf", 1);


Saludos y gracias por tu buena onda! :love:

Por paraguila

189 de clabLevel



Genero:Femenino  

Argentina

firefox
Citar            
MensajeEscrito el 25 Oct 2006 04:13 pm
probé lo que me dijiste pero me sale un error de aplicación de código, tu código es este:

Código :

function CargarSWF(){       
var xmlConcursos:XML = new XML();       
xmlConcursos.ignoreWhite = true;       
xmlConcursos.onLoad = function(exito:Boolean){             
if(exito){                   
numero = xmlconcursos.firstChild.childNodes[0].firstChild.nodeValue;                  
loadMovieNum("panel_concurso_" + (1+random(numero)) + ".swf", 1);             
}   
}       
xmlConcursos.load"(concursos.xml");}CargarSWF();


Este es error que me sale, probe publicando en action scrip 1.0 y 2.0 pero me sale el error lo mismo:

**Error** Escena=Escena 1, capa=Capa 4, fotograma=1:Línea 10: Error de sintaxis.
xmlConcursos.load"(concursos.xml");}CargarSWF();

Total de errores de ActionScript: 1 Errores comunicados: 1

**Error** Escena=Escena 1, capa=Capa 4, fotograma=1:Línea 10: Error de sintaxis.
xmlConcursos.load"(concursos.xml");}CargarSWF();


Saludos

Por paraguila

189 de clabLevel



Genero:Femenino  

Argentina

msie
Citar            
MensajeEscrito el 26 Oct 2006 06:08 pm
Hola, lo que pasa es que tube un error de dedo, en la instruccion final, puse las comillas dobles antes del parentesis y van despues...

Escribi...

Código :

xmlConcursos.load"(concursos.xml");


Asi debe de ser...

Código :

xmlConcursos.load("concursos.xml");


Disculpa, tambien hay que revisar bien los codigos, y no solo dar copy & paste, saludos!

Por heberto

263 de clabLevel

1 tutorial

1 ejemplo

 

Morelia, Michoacán

safari
Citar            
MensajeEscrito el 26 Oct 2006 06:35 pm
mm ya me parecía algo así.. si probé mucho, no se de sintaxis por eso... probé moviendo la comilla pero esa combinación no se me ocurrió jajajaja hasta probé poniendo tilde ( ' ) pero bueno como mucho no se mas por azar que otra cosa! jaja Ahora si funciona perfecto! esta buenisimooo, con esto puedo modificar cualquier cosa de la pelicula.

Muchísimas gracias Heberto. Vos si que sos Cuate buena onda! ^^

Por paraguila

189 de clabLevel



Genero:Femenino  

Argentina

msie
Citar            
MensajeEscrito el 16 Nov 2006 01:01 am
Ahora tengo otra duda, quiero aplicar si siguiente:

Tengo una player de video que tiene el siguiente script:

Código :

function playMovie()
{
    if (!isStarted)
    {
        ns.play(file);
        playText.txt.text = "loading ..";
        isStarted = true;
    }
    else
    {
        ns.pause();
    } // end if
    encendido._visible = true;
    playBut._visible = true;
} // End of the function
function pauseMovie()
{
    ns.pause();
    playBut._visible = true;
    encendido._visible = false;
} // End of the function




//Link a video -------------------------------------------------
!_root.file ? (file = "video.flv", 
file = "video.flv") : (file = _root.file);




!_root.autoStart ? (autoStart = true, autoStart = true) : (autoStart = _root.autoStart);
w = 300;
h = 260;
nc = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);

// RETRASAR TIEMPO DE CARGA
ns.setBufferTime(5);

this.createEmptyMovieClip("snd", 0);
snd.attachAudio(ns);
audio = new Sound(snd);
unmuteBut._visible = false;
videoDisplay.attachVideo(ns);
ns.onMetaData = function (obj)
{
    this.totalTime = obj.duration;
};
ns.onStatus = function (object)
{
    if (object.code == "NetStream.Play.Start")
    {
    }
    else if (object.code == "NetStream.Buffer.Full")
    {
    }
    else if (object.code == "NetStream.Play.Stop")
    {
        ns.seek(0);
        ns.pause();
        playBut._visible = true;
        encendido._visible = false;
    } // end if
};
videoBg.onPress = function ()
{
    if (encendido._visible == false)
    {
        playMovie();
    }
    else
    {
        pauseMovie();
    } // end if
};
pauseBut.onPress = function() {
    pauseMovie();
};
playBut.onPress = function() {
    playMovie();
};
percentBar.onEnterFrame = function ()
{
    loaded = this._parent.ns.bytesLoaded;
    total = this._parent.ns.bytesTotal;
    if (loaded == total && loaded > 1000)
    {
        percentBar._width = bw;
        delete this.onEnterFrame;
    }
    else
    {
        percentBar._width = int(bw * loaded / total);
    } // end if
};
progressBar.onEnterFrame = function ()
{
    this._width = bw * ns.time / ns.totalTime;
};
centerBg.onPress = function ()
{
    this.onEnterFrame = function ()
    {
        scl = this._xmouse * this._xscale / bw / 100;
        ns.seek(scl * ns.totalTime);
    };
};
centerBg.onRelease = centerBg.onReleaseOutside = function ()
{
    delete this.onEnterFrame;
    encendido._visible == true ? (videoDisplay.pause()) : (null);
};
muteBut.onPress = function ()
{
    audio.setVolume(0);
    unmuteBut._visible = true;
    this._visible = false;
};
unmuteBut.onPress = function ()
{
    audio.setVolume(100);
    muteBut._visible = true;
    this._visible = false;
};
videoDisplay._width = videoBg._width = w;
videoDisplay._height = videoBg._height = h - 20;
playText._x = w / 2;
playText._y = h / 2 - 10;
leftBg._x = 0;
leftBg._y = h - 20;
playBut._x = pauseBut._x = 12;
playBut._y = pauseBut._y = h - 10;
// Corre a la derecha o izquierda la barra de estado
centerBg._x = percentBar._x = progressBar._x = backBar._x = 78;
centerBg._y = h - 20;
percentBar._y = progressBar._y = h - 12;
// reducir tamaño de la barra de estado
bw = centerBg._width = percentBar._width = progressBar._width = w - 120;
rightBg._x = w - 21;
rightBg._y = h - 20;
muteBut._x = unmuteBut._x = w - 11;
muteBut._y = unmuteBut._y = h - 10;
if (autoStart == true)
{
    playMovie();
}
else
{
    encendido._visible = false;
} // end if



Largo no? jeje... donde dice:

Código :

//Link a video -------------------------------------------------
!_root.file ? (file = "video.flv", 
file = "video.flv") : (file = _root.file);


quiero hacer que desde un xml externo se pueda modificar los links al video. traté de colocar como me explicó heberto arriba pero cuando lo hago no me sale, no se si será que a la variable que le asigno al estar encerrada entre " " no funciona porque ya no es una variable. O por que es? alquien sabe?.

Desde aquí pueden bajar el Fla. si es que necesitan ver como funciona y probarlo.

Saludos y mmuchas gracias

Por paraguila

189 de clabLevel



Genero:Femenino  

Argentina

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.