Busca lo que quieras

Modificar un Boton de escenario en AS3

Holas a todos.

Quizas esto le sirva a alguien.

Cuando se crea un boton sobre el escenario en flash, y modificamos sus estado over, up o down o hit, y dentro de alguno de esos estados metemos un textfield que queremos modificar dinamicamente.
En este caso especifico:
¿Como podemos acceder al textfield que por ejemplo se encuentra en el estado over del boton?

1. Consiguimos el displaycontainer del estado over.
2. Recorremos todos sus hijos con una función recursiva.
3. Validamos nombre de instacia de cada objeto hasta encontrar el del textfield que necesitamos.
4. Metemos el objeto encontrado dentro de un objeto para ser modificado despues.

Así sería el codigo.
Paso 1:

var displayContainer:DisplayObjectContainer = btn100.overState as DisplayObjectContainer;

Paso 2:
function recorrerFamiliaMovieClip(dc:DisplayObjectContainer):void{
    for (var i:uint = 0; i < dc.numChildren; i++){
        trace("hijotipo: " + dc.getChildAt(i));
        trace("hijo: " + dc.getChildAt(i).name);
        if(dc.getChildAt(i) is Shape){
            trace('es shape');
        }
        else{
            if(DisplayObjectContainer(dc.getChildAt(i)).numChildren > 0){
                recorrerFamiliaMovieClip(DisplayObjectContainer(dc.getChildAt(i)));
            }
           
        }
    }
}



Paso 3 y 4: Modificamos la funcion recursiva para validar el nombre de instancia del objeto que deseamos modificar:

recorrerFamiliaMovieClip(displayContainer);
var objetoBuscado;
function recorrerFamiliaMovieClip(dc:DisplayObjectContainer):void{
    for (var i:uint = 0; i < dc.numChildren; i++){
        trace("hijotipo: " + dc.getChildAt(i));
        trace("hijo: " + dc.getChildAt(i).name);
        if(dc.getChildAt(i).name == "texto"){
            objetoBuscado = dc.getChildAt(i);
        }
        else if(dc.getChildAt(i) is DisplayObjectContainer){
            if(DisplayObjectContainer(dc.getChildAt(i)).numChildren > 0){
                recorrerFamiliaMovieClip(DisplayObjectContainer(dc.getChildAt(i)));
            }
           
        }
    }
}
trace('objeto: ' + objetoBuscado);
var textFieldEncontrado:TextField = TextField(objetoBuscado);
textFieldEncontrado.text = "texto de prueba"

Como se puede observar: Se busca un objeto con nombre de instancia "texto" el cual es un texField, por eso al final las ultimas lineas obtengo el objeto lo convierto a este tipo de objeto (TextField) y modifico lo que quiera.

Espero esto le sirva a alguién... Saludos...
Cualquier pregunta con mucho gusto espero sus comentarios.

No hay comentarios:

Publicar un comentario

Palabras Clave

.NET (93) AJAX (2) ajaxcontroltoolkit (2) Algoritmos (1) android (1) Angular (1) Arrays (1) AS2 o ActionScript 2.0 (1) AS3 o ActionScript 3.0 (64) ASP (7) ASP.NET (3) Azure (1) Azure DevOps (2) Backup (2) Batch (4) blogger (1) Browser Support (2) C# (53) Charts (1) Chorme extensions (1) Chrome (3) cmd (18) código postal (1) Colombia tips (1) command (1) Conexion remota (1) Controles Web .NET (24) Cookies (1) cordova (1) CSS (14) CSV (5) Cufon (1) DateTime (2) deployment (2) Desarrollo movil (2) Desarrollo web (5) Diseño (4) DNN o DotNetNuke (5) docker (1) Encuestas (1) Entity Framework (1) Error (1) Eval (2) Excel (4) Expresiones regulares (2) Facebook (14) fechas (1) Fiddler (1) FileUpload (1) Filezilla (1) Firefox (2) Flash (9) Fonts (3) FQL (1) frameworks (2) Futuro de la web (1) git (1) Google Code (13) Google Maps (4) hackintosh (3) hazard 10.6.2 (3) herramientas para developers (1) highchart (1) Hilos (2) Hosting Windows (18) HTML (38) HTML5 (6) IDE (1) IE (2) IE9 (1) IIS (13) imagenes (3) jasmine (2) java (1) jqgrid (2) Jquery y Javascript (90) jquery-ui (5) jQueryMobile (1) JSON (1) knockout (4) library (1) Link Interesantes (2) List (1) Macro (2) Matemáticas (2) Membership (6) Memoria (1) Mis Experiencias (3) momentjs (1) ms-dos (1) MSN (1) MVC (1) MVC4 (3) MySQL (2) node.js (4) Notepad++ (3) Notificaciones (1) ObjectDataSource (2) Online (2) Opinión (4) OSX (3) Parallels Plesk Panel (1) petapoco (1) PhantomJS (1) PHP (4) Porqué este blog (1) Powershell (1) Razor (3) Redes (2) REGEX (4) REST (1) SDK Android (1) Seguridad (1) SelectParameters (1) Selenium (2) sencha (3) sencha cmd (2) SEO (1) SMTP (2) Software útil (8) Solución (1) Soporte (1) SQL (15) SQL Server (58) SQLite (2) Store Procedures (20) String (5) Testing Code (2) texto (2) tips de datos (1) tips de desarrollo (1) TutoFaceAS3 (4) TutoProAS3 (4) Tutoriales (7) Tweenlite effects (3) Últimas noticias (1) unit testing (1) usb (1) VBA (1) Video (1) virus (1) Web API (2) Web Browsers (1) Web Forms (7) web.config (1) Webmaster (8) Webmatrix (1) webrole (1) webservices (1) webstorm (1) Win Forms (5) Windows (21) Windows 7 (1) Windows 8 (1) XML (2) Youtube API (2)