Comunidad de diseño web y desarrollo en internet online

Clase para un menu Carousel

Citar            
MensajeEscrito el 14 Feb 2007 05:51 pm
Ahora la clase para un menu Carousel.
Al momento de cargar el XML (otra vez, pero sin usarla para componente), no se deja, me volvi a confundir un poquito, por favor, alguien que me de norte.

Este es mi intento de Clase:

Código :

import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;

class MenuCarousel extends MovieClip{
  // movie clip padre (el contenedor del menu carousel)
  private var menu:MovieClip;   
  // en donde vamos a cargar el contenedor
  private var target_mc:MovieClip;

  //profundidad del movie clip menu
  private var menuDepth:Number;  
  
  //numero de opciones en el menu
  private var elementos:Number;

  private var urlxmlFuentes:String;

  // radio en el eje X
  static var radioX:Number = 300;
  // radio en el eje y
  static var radioY:Number = 75;
  // coordenadas del centro del carousel
  private var centroX:Number ;
  private var centroY:Number ;
  // Angulo en que aparecera cada item
  private var angulo:Number;
  // velocidad con que se movera el carousel
  private var velocidad:Number = 0.05;
  //perspectiva del movie clip (influye en el la propiedad _scale)
  private var perspectiva:Number = 130;

  private var xmlItems:XML;
  
  // para el icono del canal (fuente de video)
//  private var fuente:MovieClip;

  
  //-------------------------------------------------------------------
  //              getters y setters
  //-------------------------------------------------------------------
  [Inspectable(defaultValue="xmlFuentesVideos.xml")]
  public function set setfuentesXML(sfuentesXML:String):Void {
   this.urlxmlFuentes=sfuentesXML;
   trace(this.urlxmlFuentes);
  }
  
  //--------------------------------------------------------------------
  //                      Constructor
  //--------------------------------------------------------------------
  public function MenuCarousel(target:MovieClip,fuentesVidString:String){
      // coordenadas del centro del carousel
      centroX = menu._width / 2;
      centroY = menu._height / 2;

     this.urlxmlFuentes=fuentesVidString;
     this.xmlItems=new XML();
      cargaFuentes(fuentesVidString);
  }
  
  // cargar los elementos del menu
  public function cargaFuentes(urlfuentes:String){
     trace("Llamar desde cargaItems   archivo XML= "+urlfuentes);
       this.xmlItems.load(urlfuentes);
     this.xmlItems.ignoreWhite=true;
     this.xmlItems.onLoad=Delegate.create(this, creaItems);
  }
  
   
  
  
  // crear los items del menu
  private function creaItems():Void{
   menu=target_mc.createEmptyMovieClip("menu" + menuDepth,menuDepth);
     
   var nodes = this.xmlItems.firstChild.childNodes;
   //  toma numero de elementos o items que tiene el XML
   this.elementos = nodes.length;
    trace(elementos);
   for(var i=0;i<elementos;i++){
      attachMovie("fuente","fuente"+i,i+1);
      this["fuente"+i].angulo=i *(2*Math.PI)/ elementos; 
       this["fuente"+i].icon.inner.loadMovie(nodes[i].attributes.logo);
        this["fuente"+i].r.inner.loadMovie(nodes[i].attributes.logo);
     trace(this["fuente"+i]);
   }
   ordenarItems();
  }
  
  private function  ordenarItems():Void{
     trace(this.centroX);
     for (var i=0;i<elementos;i++){
          this["fuente"+i]._x=(i*100);
     }
  }
}



Así trato de usarla en el archivo fla :

Código :

import MenuCarousel;
var mCarousel:MenuCarousel = new MenuCarousel(_root,"xmlFuentesVideos.xml");




Y el xml que está en la misma carpeta y que intento cargar es algo asi:

Código :

<videoproviders>
<videoprovider name= "Provider1" logo="cnn_sp_logo.png" xmlvideos="XmlVideosProvider1.xml" />
<videoprovider name= "Provider2" logo="universal_logo.png" xmlvideos="XmlVideosProvider2.xml" />
<videoprovider name= "Provider3" logo="ap_logo.png" xmlvideos="XmlVideosProvider3.xml" />
</videoproviders>

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Feb 2007 06:41 pm
si tienes algún problema y quieres ayuda

RESUME EL MALDITO POST

mensaje tipo para el sentido comun escribió:


para localizar un error, analiza todo tu código por etapas, ¿funciono esto? entonces ¿funciona esto otro? una vez que detectes el error intenta solucionarlo, si no resulta pregunta acerca del error especifico, de la forma mas breve y clara posible, postea el código necesario siempre entre la etiqueta [code]
Ademas lee Guia para obtener ayuda efectiva en los foros

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 15 Feb 2007 06:44 pm
Con una modificación y arreglado el asunto de crear elementos del menu (creaItems), ya que en el constructor estaba mal llamado la función para crear el contenedor (menu).


Código :

import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;

class MenuCarousel extends MovieClip{
  // movie clip padre (el contenedor del menu carousel)
  private var menu:MovieClip;   
  // en donde vamos a cargar el contenedor
  private var target_mc:MovieClip;

  //profundidad del movie clip menu
  private var menuDepth:Number=1;  
  
  //numero de opciones en el menu
  private var elementos:Number;

  private var urlxmlFuentes:String;

  // radio en el eje X
  static var radioX:Number = 300;
  // radio en el eje y
  static var radioY:Number = 75;
  // coordenadas del centro del carousel
  private static var centroX:Number;
  private static var centroY:Number ;
  // Angulo en que aparecera cada item
  private var angulo:Number;
  // velocidad con que se movera el carousel
  private var velocidad:Number = 0.05;
  //perspectiva del movie clip (influye en el la propiedad _scale)
  private var perspectiva:Number = 130;

  private var xmlItems:XML;
  
  // para el icono del canal (fuente de video)
//  private var fuente:MovieClip;

  
  //-------------------------------------------------------------------
  //              getters y setters
  //-------------------------------------------------------------------
  [Inspectable(defaultValue="xmlFuentesVideos.xml")]
  public function set setfuentesXML(sfuentesXML:String):Void {
   urlxmlFuentes=sfuentesXML;
   trace(this.urlxmlFuentes);
  }
  
  //--------------------------------------------------------------------
  //                      Constructor
  //--------------------------------------------------------------------
  public function MenuCarousel(target:MovieClip,fuentesVidString:String){
       target_mc=target;
     crearContenedor(100,100);
      // coordenadas del centro del carousel
      centroX = this._width / 2;
      centroY = this._height / 2;
      trace("centroX" + centroX);
     trace("centroY" + centroY);
     urlxmlFuentes=fuentesVidString;
     xmlItems=new XML();
     trace(menu);trace(target_mc);
      cargaFuentes(fuentesVidString);
  }
  
  // cargar los elementos del menu
  public function cargaFuentes(urlfuentes:String){
     trace("archivo XML= "+urlfuentes);
       xmlItems.load(urlfuentes);
     xmlItems.ignoreWhite=true;
     xmlItems.onLoad=Delegate.create(this, creaItems);
  }
  
    // Creates the container that holds all the assets.
  private function crearContenedor (x:Number, y:Number):Void {
    menu = target_mc.createEmptyMovieClip("menu" + menuDepth,menuDepth);
    // Position the container clip.
    menu._x = x;
    menu._y = y;
  }
  
  
  // crear los items del menu
  private function creaItems():Void{
   var nodes = this.xmlItems.firstChild.childNodes;
   //  toma numero de elementos o items que tiene el XML
   elementos = nodes.length;
   for(var i=0;i<elementos;i++){
      var item=menu.attachMovie("fuente","fuente"+i,i+1);
      item.angulo=i *(2*Math.PI)/ elementos; 
       item.icon.inner.loadMovie(nodes[i].attributes.logo);
      item.r.inner.loadMovie(nodes[i].attributes.logo);
   }
   ordenarItems();
  }
  
  private function  ordenarItems():Void{
     for (var i=0;i<elementos;i++){
          this.menu["fuente"+i]._x=(i*100);
     }
  }
}



Sugerencias, tips, regaños, etc. etc, bienvenidos.

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox

 

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