Comunidad de diseño web y desarrollo en internet online

ExternalInterface que metodo uso para pasar arreglos?

Citar            
MensajeEscrito el 11 Mar 2009 09:06 pm
Hi que tal tengo un problema quisiera yo pasar el valor de un arreglo tengo mi html asi

Código :

<script type="text/javascript" src="swfobject.js"></script>
      <script type="text/javascript">
         var flashvars = {
         tamano: 3,
         nombre1:"Beneficios",
         name1:flashBanners
         };
         var params = {};
         params.scale = "noscale";
         var attributes = {};
         swfobject.embedSWF("header.swf", "flashDiv", "895", "253", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
         
         function FlashBanner (title, urlSwf){
            this.title = title;
            this.urlSwf = urlSwf;   
         }
         
         var flashBanners = new Array();
         function getFlashBanners(){
            flashBanners[0] = new FlashBanner ('title 1', 'urlSwf1.swf');
            flashBanners[1] = new FlashBanner ('title 2', 'urlSwf2.swf');
            flashBanners[2] = new FlashBanner ('title 3', 'urlSwf3.swf');
            flashBanners[3] = new FlashBanner ('title 4', 'urlSwf4.swf');
            flashBanners[4] = new FlashBanner ('title 5', 'urlSwf5.swf');
            return flashBanners;
         }
         
         function init(){
            var banners = getFlashBanners();
            for (var i=0; i<banners.length; i++)
               alert (banners[i].urlSwf);
         }
      </script>

Hay alguna forma de que pueda saber esos datos mediante flash ?

Saludos cordiales

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

firefox
Citar            
MensajeEscrito el 11 Mar 2009 09:38 pm
Podrias intentar con:

Código ActionScript :

import flash.external.*;

tu_boton.onPress = function() {
    var aux:Array = Array(ExternalInterface.call("getFlashBanners"));
    for( var i in aux ) tu_texto.text += aux[i].title +"::"+ aux[i].urlSwf + "\n";
}



Aunque no se si sea posible regresar Objetos dentro de Arrays. :S

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 11 Mar 2009 10:22 pm
hi ya lo probe y nomas nada me dice undefined , ya lo probe quitandole lo del objeto:

Código :

var flashBanners = new Array();
         function getFlashBanners(){
            flashBanners[0] = 'urlSwf1.swf';
            flashBanners[1] = 'urlSwf2.swf';
            flashBanners[2] = 'urlSwf3.swf';
            flashBanners[3] = 'urlSwf4.swf';
            flashBanners[4] = 'urlSwf5.swf';
            return flashBanners;
         }

y me marca null, que puede estar fallando
Saludos

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

firefox
Citar            
MensajeEscrito el 11 Mar 2009 10:25 pm
mmm, intenta:

Código Javascript :

getFlashBanners();
function getFlashBannerN( aux ){
     return flashBanners[aux];
}


y en AS

Código ActionScript :

import flash.external.*; 
tu_boton.onPress = function() { 
    var aux:String = String(ExternalInterface.call("getFlashBannerN", 1)); 
    tu_texto.text += aux;
} 

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 11 Mar 2009 10:43 pm
no tampoco me sale null, la prueba que hago tiene que estar en llinea o sirve de manera local igual, cuando quise sacar el tamaño del arreglo

Código :

aux.length

me salio 1

saludos

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

msie7
Citar            
MensajeEscrito el 11 Mar 2009 11:09 pm
y si se las pasas con flashvars? de todas formas voy a hacer unas pruebas.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 12 Mar 2009 12:15 am
Para mi seria lo mejor y mas facil , pero no mira el problema esta asi, se esta manejando un CMS que controlara los banners swf que metera puede meter desde 1 hasta como esta en el ejemplo 5 controlara tanto los swf que quiera meter e incluso el orden de como iran, por eso para mi sera no se factible que el metiera los banners asi como de por su lado controlar el orden y yo solo los leo para la secuencia de ellos no se si me di a entender o hay otra manera de poder hacerlo ahora no se si flashvars me permite meter arreglos ? o seria uno por uno


Saludos

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

msie7
Citar            
MensajeEscrito el 12 Mar 2009 02:37 am
Hola, bueno ya hice las pruebas y el problema era allowScriptAcces, asi quedo el JS:

Código Javascript :

         var flashvars = {
         tamano: 3,
         nombre1:"Beneficios",
         name1:flashBanners
         };
         var params = {};
         params.scale = "noscale";
         params.allowScriptAccess = "always";//Nota esta nueva linea
         var attributes = {};
         swfobject.embedSWF("ei.swf", "flashDiv", "895", "253", "8.0.0", "expressInstall.swf", flashvars, 

params, attributes);
         
         function FlashBanner (title, urlSwf){
            this.title = title;
            this.urlSwf = urlSwf;   
         }
         
         var flashBanners = new Array();
         flashBanners[0] = new FlashBanner ('title 1', 'urlSwf1.swf');
         flashBanners[1] = new FlashBanner ('title 2', 'urlSwf2.swf');
         flashBanners[2] = new FlashBanner ('title 3', 'urlSwf3.swf');
         flashBanners[3] = new FlashBanner ('title 4', 'urlSwf4.swf');
         flashBanners[4] = new FlashBanner ('title 5', 'urlSwf5.swf');
         

         function getFlashBanner( aux ){
            return flashBanners[aux];
         }
         
         function init(){
            var banners = getFlashBanners();
            for (var i=0; i<banners.length; i++)
               alert (banners[i].urlSwf);
         }


Asi quedo flash:

Código ActionScript :

import flash.external.*;

var arr:Array = Array();
var l:Number = Number(ExternalInterface.call("function(){return flashBanners.length}"));
   
for( var i:Number = 0; i < l; i++ )
{
   arr[i] = Object(ExternalInterface.call("getFlashBanner", i));
   salida.text += arr[i].title + " : " + arr[i].urlSwf + "\n";
}


Y con eso debe funcionar, Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 12 Mar 2009 06:05 pm
Gracias Bro me sirvio mucho te debo una cerveza ... :D

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

msie7

 

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