Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/05/2010, 08:27
Avatar de Lynxcraft
Lynxcraft
 
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 17 años
Puntos: 51
Respuesta: Comunicacion entre Variables de Peliculas externas *AS 3

a ver este es un script que funciona como globals para la carga y recogida de variables dentro de swf externo


Código PHP:
package com.cfx.utils{
    [
Bindable]
    public class Global {
        public var 
_var:Object={};
        public var 
_class:Object={};
        public var 
_function:Object={};
        public static var 
TypeVar:String='_var';
        public static var 
TypeClass:String='_class';
        public static var 
TypeFunction:String='_function';
        public var 
value:*;
        private static var 
instance:Global;

        public function Global() {
        }
        public static function 
setGlobal(value:Object,type:String):Global {
            
ini();
            for (var 
prop in value) {
                
instance[type][prop]=value[prop];
            }
            return 
instance;
        }
        public static function 
getGlobal(name:String,type:String):Global {
            
ini();
            if (
instance[type][name]) {
                
instance.value=instance[type][name];
            }
            return 
instance;
        }
        public static function 
getType(type:String):Global {
            
ini();
            
instance.value=instance[type];
            return 
instance;
        }
        private static function 
ini():void {
            if (
instance==null) {
                
instance=new Global  ;
            }
        }
        public static function 
get VAR():* {
            
ini();
            return 
instance[TypeVar];
        }
        public static function 
get CLASS():* {
            
ini();
            return 
instance[TypeClass];
        }
        public static function 
get FUNCTION():* {
            
ini();
            return 
instance[TypeFunction];
        }
        public static function 
listName(type:String):Array {
            
ini();
            var 
Names:Array=new Array
            for (var 
prop in instance[type]) {
                
Names.push(prop);
            }
            return 
Names
        
}
        public static function 
liberate():void {
            
ini();
            
instance[TypeFunction]=null
            instance
[TypeClass]=null
            instance
[TypeVar]=null
            instance
=new Global 
        }
    }

por ejemplo en el swf principal creas una funcion como por ejemplo


Código PHP:
import com.cfx.utils.Global;

//funcion que quremos que sea global

function functionGlobalXXX (value:String):void{
    
trace(value)
}
//registramos la funcion 

Global.setGlobal({funGxxx:functionGlobalXXX},Global.TypeFunction);

// ahora ya podemos ejecutar dicha funcion de esta manera

Global.FUNCTION.funGxxx('hola Mundo'

en el swf externo podemos ejecutar la misma fucnion de esta manera
Código PHP:
import com.cfx.utils.Global;
Global.FUNCTION.
funGxxx('hola Mundo')//hola Mundo 
para las variables es lo mismo

en el swf principal

Código PHP:
import com.cfx.utils.Global;
var 
miVariableGlobal:String='Hola Mundo'
Global.setGlobal({variable:miVariableGlobal},Global.TypeVar); 
en el swf externo
Código PHP:
import com.cfx.utils.Global;
trace(Global.VAR.variable//Hola Mundo 
de esta manera puedes controlar variables globales y leerlas tanto de swf externo como de la pelicula principal
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft