Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Flash y Actionscript (http://www.forosdelweb.com/f16/)
-   -   declarar y usar variables en un as externo (http://www.forosdelweb.com/f16/declarar-usar-variables-externo-473754/)

NUCKLEAR 17/03/2007 05:43

declarar y usar variables en un as externo
 
Que tal gente, mi problema: necesito crear variables en un archivo externo, en este caso en un archivo as, para poder usarlo en flex, ya que estas variables las necesito modificar constantemente, como las declaro para poder usarlo en flex, un ejemplo:

variables.as

public var mitexto:String = "Hola nucklear";

y en flex:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" />

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="242" height="199">
<mx:Script source="variables.as"/>


<mx:Label x="58" y="159" width="138" text="{mitexto}" color="#00ff40" fontWeight="bold" fontSize="25" />

</mx:Canvas>

</mx:Application>

es correcto?¿
otra duda: lo hice pero con el codigo as embebido es decir con !cdata me imprimio el texto correctamente, pero al hacerlo con el codigo as externo, me sigue saliendo el mismo texto anterior, aunque borre el cache, las cockies, y todo rastro de la pagina donde visualice la aplicacion sin embargo me sigue mostrando el texto...:neurotico como puedo hacer. no se si me explique bien.

jahepi 17/03/2007 14:00

Re: declarar y usar variables en un as externo
 
Hola NUCKLEAR!

Encapsula toda la información en una clase, y en tu aplicación haces referencia a una instancia de la misma, eso de incluir un archivo lleno de variables públicas rompe con las reglas principales de la programación orientada a objetos.

Veo que vas a utilizar nada mas una instancia, se tendría que implementar el patrón singleton esto quiere decir que siempre que crees una instancia de la clase te devolverá la referencia al objeto que creaste la primera vez, por ejemplo haces un paquete "data" y dentro de el creas la siguiente clase:

Código:

package data {
       
        [Bindable]
        public class PersonalData {

        /* Cuando implementas el patrón singleton, siempre el contructor
            debe ser privado para evitar la creación directa de instancias
            pero en as3.0 se pone sus moños y no es posible poner los
            constructores como privados */
               
                private static var INSTANCE:PersonalData;
               
                private var mitexto:String = "Hola nucklear";
               
                public static function getInstance():PersonalData {
                        if(INSTANCE == null) {
                                INSTANCE = new PersonalData();
                        }
                       
                        return INSTANCE;
                }
               
                public function get miTexto():String {
                        return mitexto;
                }
               
                public function set miTexto($miTexto:String):void {
                        mitexto = $miTexto;
                }
               
        }
}

En tu aplicación vas a crear tu objeto llamando al método estático getInstance:

Código:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" />

<mx:Script>
        <![CDATA[
                       
                import data.PersonalData;
                private var data:PersonalData = PersonalData.getInstance();
                       
        ]]>
</mx:Script>

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="242" height="199">

<mx:Label x="58" y="159" width="138" text="{data.miTexto}" color="#00ff40" fontWeight="bold" fontSize="25" />

</mx:Canvas>

</mx:Application>


Y en toda tu aplicación tan solo llamando el método getInstance, te devolverá la referencia al primer objeto creado, tendrás un acceso global a tu información. :arriba:

Un saludo! :adios:

TMeister 17/03/2007 15:32

Re: declarar y usar variables en un as externo
 
Ademas de lo que comenta jahepi. Lo que deseas hacer no se puede. Explico por que.

Cuando declaras variables en un "as externo" como tu lo llamas. al momento de compilar el SWF ese AS sera compilado junto con el SWF, asi cambies mil veces el valor de la variables en el AS nunca cambiara a menos que vuelvas compilar el SWF, los archivos, clases AS nunca son compiladas en tiempo de ejecucion, ni en FLEX ni en FLASH, para hacer lo que deseas necesitas hacerlo mediante un archivo de texto normal o un XML. de los cuales cargaras la informacion con sus respectivos metodos.

Saludos!!

NUCKLEAR 17/03/2007 20:10

Re: declarar y usar variables en un as externo
 
Gracias maestros. si ya lo solucione con xml, y me andubo joya, perdonen mi ignoracia, como se tendria que llamar a "as externo" :) no encontraba otro termino, pero la idea se entendio..


La zona horaria es GMT -6. Ahora son las 01:38.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.