Comunidad de diseño web y desarrollo en internet online

Pasar mxml a ActionScript.

Citar            
MensajeEscrito el 21 May 2009 09:00 pm
Hola, tengo un código que funciona, un miniprograma hecho en flex con mxml.
Quiero probarlo pero en vez de utilizar etiquetas mxml usar directamente clases objetos y constructores en AS3. No me da ningun error pero a la hora de ejecutarlo no me aparece nada por pantalla, no sé que estoy haciendo mal o si olvido algo.

Este es el programa en mxml que funciona perfectamente.

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:controls="com.fxcomponents.controls.*" 
   backgroundColor="#444444" themeColor="#628CAF" backgroundGradientAlphas="{[0, 0]}">
   <mx:Script>
      <![CDATA[
         
         [Bindable]
         private var source:String = "E:/WAMP/WWW/PFC/video(4).mp4";
         
         ]]>
   </mx:Script>
   <controls:FXVideo width="380" height="260" source="{source}" autoPlay="false" bufferTime="10" /> 
</mx:Application>




Y este es el mismo programa pero en vez de usar una etiqueta controls:FXVideo utilizo el constructor directamente, debería de mostrar lo mismo que en el ejemplo anterior pero no me aparece nada.

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  creationComplete="init()"
   xmlns:controls="com.fxcomponents.controls.*" 
   backgroundColor="#444444" themeColor="#628CAF" backgroundGradientAlphas="{[0, 0]}">

<mx:Script>
   <![CDATA[
      import com.fxcomponents.controls.*;
            
      private function init():void{
      vid=new FXVideo();      
         vid.width=380;
         vid.height=260;
         vid.autoPlay=false;
         vid.bufferTime=10;
         vid.source="E:/WAMP/WWW/PFC/video(4).mp4";
      }
       
   ]]>
</mx:Script>   
</mx:Application>



Son iguales no? Por qué el segundo no funciona?

Por riestra

73 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 May 2009 10:43 pm
Hola
Nop se,, no he mirado muy a fondo pero pensaria que te falta

Código :

 this.addChild(vid);

Espero te sirva.

rgc

Por rgc

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 May 2009 10:07 am
Tienes razon, faltaba el addChild...., pero ahora tengo otro problema.
En mxml puedo encapsular ese componente como hijo de cualquier otro componente sin ningún problema.

Código :

<mx:VBox width="500" height="500" backgroundColor="#eeeeee">
      <controls:FXVideo width="380" height="260" source="{source}" autoPlay="false" bufferTime="10" />
</mx:VBox> 


Sin embargo cuando intento hacer lo mismo en código AS3 me dice

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.

Y creo que estoy haciendo lo mismo que en el mxml no entiendo por qué falla.


Código :

   import mx.containers.VBox;   
      import com.fxcomponents.controls.FXVideo;      
      private function init():void{
      var vid:FXVideo;
         vid=new FXVideo();      
            vid.width=480;
            vid.height=300;
            vid.autoPlay=false;
            vid.bufferTime=10;
            vid.source="E:/WAMP/WWW/PFC/video(4).mp4";
         var a:VBox=new VBox();
            a.width=500;
            a.height=500;        
            a.addChild(vid);
         addChild(a);
         
      }


A ver si alguien me lo puede decir.
Gracias y un saludo.

Por riestra

73 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 May 2009 01:26 pm
Hola,
Creo que es el mismo problema...
la ultima sentencia debe ser algo como : this.addChild(a);

rgc

Por rgc

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 May 2009 02:13 pm
No es por eso, fíjate que ya pongo en la últma linea addChild(a) que es lo mismo que this.addChild(a).
Es un problema que lanza al meterlo en un contenedor y no directamente como child del application.
El problema es que con tags mxml si que puedo meterlo dentro de un contenedor, pero al hacerlo en AS3 tengo ese error.

Ayuda!!

Por riestra

73 de clabLevel



 

msie8
Citar            
MensajeEscrito el 22 May 2009 02:34 pm
Hola,
Pero en que linea sale el error?, es un error de compilacion o de tiempo de ejecucion?

rgc

Por rgc

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 May 2009 09:01 am
En ejecución, lo marca en la línea que hago a.addChild(vid).
No se puede crear una instancia a partir de una referencia a un objeto nulo creo que dice.
En cambio si hago this.addChild(vid) ahí si que funciona, o si el vid lo defino como child de un contenedor pero usando tags

<mx:Canvas width="300" height ="300>
<controls:FXVideo width="200" height="200"/>
</mx:Canvas>

Asi tambien funciona no devuelve error. No entiendo qué pasa....

Por riestra

73 de clabLevel



 

firefox

 

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