Aaaa genial
maneuver encontraste la solución no pensé en el contentLoaderInfo que cacha la info del contenedor Interno y así es como obtengo ya el ancho y alto de la peli interna gracias amigo, por el aporte igual me ha servido, ahora te comento porque comente que no importaba el preloader, es que en el código de
GUSUM a final de cuenta no le interesa eso al momento según su código lo único que necesita es que el Clip u objeto este centrado, y una vez que tu Complete termina hace lo mismo sigue sin centrarlo por qué? Porque un objeto este o no este en el stage se encuentra en memoria y el evento lo único que hace es terminar de cargar algo que tiene ya en el bufering, un “onLoader” como en Javascript no es como un Complete de AS3 ya que un onLoader o preloader se ejecutan cuando todos los eventos del escenario o pagina terminan de cargarse un
Event.COMPLETE del AS3 es un evento que termina cuando exclusivamente un CLIP en particular termina de cargar ese CLIP del bufering, ahora si lo que necesitas es algo similar a un preloader o un evento que se ejecuta en toda la peli lo que uso yo es hago un
Código ActionScript :
stage.addEventListener(Event.ENTER_FRAME,Ordena);
Código ActionScript :
function ordena(e:Event):void
{
// funciones para ordenar redimensionar eventos principales etc…
}
Esto hace que al iniciar mi película se centre.
Si necesito mostrar en un HTML por escala liquida solo meto los width y height al 100% y la película le asigno
Código ActionScript :
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
Y en un evento de
Código ActionScript :
stage.addEventListener(Event.RESIZE, EscalarPelicula);
Vuelvo a ejecutar una función que escale y centre mis objetos de la película.
Nota: “para mozilla opera y safari” necesito en un CSS meter esto dentro del HTML para versiones actualesCódigo HTML :
.pelicula
{
width: 100%;
height: 100%;
}
embed
{
width: 100%;
height: 100%;
position: absolute;
}
Como el Event.COMPLETE no es un evento al nivel del componentDisplay no podría usar esto
Código ActionScript :
stage.addEventListener(Event.COMPLETE, );
En una ocasión intente hacerlo pero lógicamente no sucederá nada.Ahora un punto final amigo maneuver tu código tiene un ligero error ya que de cualquier forma seria lo mismo si lo dejas tal cual está ya que no trae los datos del contentLoaderInfo. Y es que solo te falto ponerlo así:
Código ActionScript :
var carga = new Loader();
carga.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
function onComplete(e:Event):void
{
var pelicula:MovieClip = e.target.content as MovieClip;
//pelicula.x = (stage.stageWidth - pelicula.width) * 0.5;
//pelicula.y = (stage.stageHeight - pelicula.height) * 0.5;
pelicula.x = (stage.stageWidth/2 – e.target.width/2); pelicula.y = (stage.stageHeight/2 – e.target.height/2);
addChild(pelicula);
}
carga.load(new URLRequest("peli.swf"));
Puedes probar a hacer esto dentro de la function
Código ActionScript :
function onComplete(e:Event):void
{
trace(pelicula.width); // creara un erro
trace(e.target.width); // sera correcto
Cualquiera puede tener el conocimiento solo es cuestión de saber cómo encontrarlo. Desde