diferencias entre los mastocitos y botones

  • nornholdj
  • Novice
  • Novice
  • Avatar de Usuario
  • Registrado: Mar 18, 2009
  • Mensajes: 18
  • Status: Offline

Nota Abril 3rd, 2009, 7:58 am

Hola,

Tengo una serie de botones que tienen eventos MouseEvent.CLICK de configuración para los que he leído en el texto de un archivo xml y cambiar dinámicamente el texto en el cuadro de texto para que coincida con cuál en el archivo XML. Originalmente establecerlas como clips de película, pero quiero hacer el mouse encima de las animaciones en ellos y sé que puedo hacerlo a través de código, pero parece que sería mucho más fácil hacer que un botón de objeto en vez de un objeto MovieClip. Tan pronto como me cambio a un botón ya no puedo configurar el texto en mi código.

Mi diseño:

Así que básicamente tienen un fondo y un cuadro de texto dinámico en una capa por encima de ella. Eso es lo básico. Para crear dinámicamente nuevos botones he adjuntado una clase de ActionScript para el objeto de botón. Al crear el botón de paso el texto para que en el constructor.

Mi toda la clase:

En esta clase lo único que se refiere a nada en el botón en sí mismo es un cuadro de texto dinámico con el nombre de instancia detailText. También se aprovecha de otra clase personalizada llamada DetailEvent que es un controlador de eventos. Si usted debe ver que la clase I pueden escribir tan bien, pero parece irrelevante para mí.
Código: [ Select ]
 
package com.ad.website
{
    import com.ad.website.DetailEvent;
    import flash.text.*;
    import flash.display.*;
    import flash.events.*;
   
    public class Detail extends SimpleButton
    {
        private var dName:String;
        private var header:String;
        private var detailDescription:String;
 
        public function Detail(DetailName:String, DetailHeader:String, DetailDescription:String):void
        {
            dName = DetailName;
            header = DetailHeader;
            detailDescription = DetailDescription;
           
            detailText.text = dName; //this line doesn't work
            addEventListener(MouseEvent.CLICK, onDetailClick);
        }
       
        private function onDetailClick(e:MouseEvent):void
        {
            dispatchEvent(new DetailEvent(detailDescription, header));
        }
       
        public function printToTrace():void
        {
            trace(name);
            trace(header);
            trace(detailDescription);
        }
    }
}
 
  1.  
  2. package com.ad.website
  3. {
  4.     import com.ad.website.DetailEvent;
  5.     import flash.text.*;
  6.     import flash.display.*;
  7.     import flash.events.*;
  8.    
  9.     public class Detail extends SimpleButton
  10.     {
  11.         private var dName:String;
  12.         private var header:String;
  13.         private var detailDescription:String;
  14.  
  15.         public function Detail(DetailName:String, DetailHeader:String, DetailDescription:String):void
  16.         {
  17.             dName = DetailName;
  18.             header = DetailHeader;
  19.             detailDescription = DetailDescription;
  20.            
  21.             detailText.text = dName; //this line doesn't work
  22.             addEventListener(MouseEvent.CLICK, onDetailClick);
  23.         }
  24.        
  25.         private function onDetailClick(e:MouseEvent):void
  26.         {
  27.             dispatchEvent(new DetailEvent(detailDescription, header));
  28.         }
  29.        
  30.         public function printToTrace():void
  31.         {
  32.             trace(name);
  33.             trace(header);
  34.             trace(detailDescription);
  35.         }
  36.     }
  37. }
  38.  


Yo no entiendo por qué funciona cuando el objeto es un movieclip, pero no como un botón. ¿Qué es diferente en los dos y ¿qué puedo hacer para solucionar mi problema?

Gracias,

-Jordania
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Abril 3rd, 2009, 7:58 am

  • roarmeow
  • Professor
  • Professor
  • Avatar de Usuario
  • Registrado: Oct 12, 2004
  • Mensajes: 861
  • Loc: BKNY
  • Status: Offline

Nota Abril 6th, 2009, 7:59 am

Jordania,
Los botones no son tan versátiles como movieclips. Entre otras cosas, no se puede enviar dinámicamente los valores de un cuadro de texto dentro de un botón. Sería tipo de ayuda, también...en calcular esto con usted, para ver dónde se declara SimpleButton en primer lugar.

Sin embargo, confío en que si usted hace SimpleButton un botón, en lugar de un MovieClip, se le disparo en el pie usted mismo en términos de envío de valores a la misma.

La buena noticia es que cualquier cosa que usted puede hacer con un botón, también puede hacer con un MovieClip. Así que sería mejor para hacer un rollover con actionscript estado en el MC si quieren el script (arriba) para trabajar. Su realidad no es tan difícil. Es el MovieClip en la biblioteca o algo así? ¿Qué significa la declaración inicial SimpleButton parece? Puede ser tan fácil como añadir un fotograma clave a la MC en la biblioteca y una o dos líneas a la declaración SimpleButton.

Paz.
  • nornholdj
  • Novice
  • Novice
  • Avatar de Usuario
  • Registrado: Mar 18, 2009
  • Mensajes: 18
  • Status: Offline

Nota Abril 6th, 2009, 8:45 am

Sí que no es lo que será más fácil si su dinámica no es posible el acceso a las cosas de actionscript. La imagen en movimiento se encuentra en la biblioteca y el código anterior está vinculado a ella. Creo que sólo Im que va a hacer la renovación de animación en actionscript aunque, en lugar de saltar fotogramas. Yo debería estar en condiciones de ser más flexible con la animación.

Publicar Información

  • Total de mensajes en este tema: 3 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 45 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC