En efecto David
según lo que yo se, cuando vinculas un elemento al escenario por 
programación, sus métodos aún no están disponibles hasta pasado un 
fotograma, por eso te funciona tu chapu (que no lo es tanto).
A mi me gusta mas de esta manera que es casi igual a la tuya, pero no se 
borra hasta que tiene seguro la funcion definida.
Un saludo.

contenedor.cuadradito.onEnterFrame=function(){
    if(this.hablar != undefined){
        this.hablar();
        delete this.onEnterFrame
    }
}




----- Original Message ----- 
From: "David Bravo" <[EMAIL PROTECTED]>
To: "'Lista dedicada a Actionscript'" <[email protected]>
Sent: Tuesday, October 30, 2007 9:30 PM
Subject: Re: [ASNativos]Duda sobre elementos creados dinámente a partir de 
objetos de la librería


Pues tampoco funciona con tu código (al menos aquí).
He conseguido un apaño que de momento (a menos que alguien venga con una
solución mejor) funciona.
Del onload, pasa de mí como de comer m... embrillo. :)

Mi ñapa:
contenedor.cuadradito_.onEnterFrame = function (){
this.hablar();
delete this.onEnterFrame;
}
Funciona, así que no toco más de momento.

Gracias por vuestra colaboración. :)

-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre
de Mercenario PHP -Luciano-
Enviado el: martes, 30 de octubre de 2007 21:16
Para: Lista dedicada a Actionscript
Asunto: Re: [ASNativos] Duda sobre elementos creados dinámente a partir de
objetos de la librería

Ufffh...ya me dijo mi madre que hoy no era día para postear...
Escribí mal el código:

debería ser:

_root.contenedor["objeto"+i]["cuadradito"+i].onLoad = function (){
trace (this);
this.hablar();
}



Mercenario PHP -Luciano- escribió:
> Sí...raro... ñ_ñ
> Y si probás algo así:
>
> this.createEmptyMovieClip("contenedor",100);
> contenedor.attachMovie("cuadradito","cuadradito_",1);
> contenedor.cuadradito_.onLoad = function (){
> this.hablar();
> }
>
> o seguiendo el code de tu galería:
>
> _root.contenedor["objeto"+i]["cuadradito"+i].onLoad {
> trace (this);
> this.hablar();
> }
>
> Tal vez no está caragada la función en ese momento...
> o sino, con un setInterval podés ejecutar la función cada dos segundos,
por ejemplo, y ahí te asegurás que no sea ese el tema...
>
> O tal vez no estamos viendo algo obvio y quedamos como unos idiotas :{
>
> David Bravo escribió:
>
>> Hola Fede:
>> Gracias por tu respuesta, pero no funciona. El caso es que no tengo
>> una clase externa para este objeto. Es un método "a lo bruto", que ya
>> me llena de curiosidad.
>> El la librería hay un único movieclip.
>> Dentro hay 2 capas, una con objeto simple: un rectángulo y un
actionscript:
>> function hablar():Void{ trace ('hola');
>>
>> Y ya está. Luego desde el timeline via actionscript creo un
>> contenedor, meto ese objeto dentro y NO puedo ejecutar ese método (o
función) hablar.
>>
>> O sea, que (simplificando aún más)
>>
>> this.createEmptyMovieClip("contenedor",100);
>> contenedor.attachMovie("cuadradito","cuadradito_",1);
>> contenedor.cuadradito_.hablar();  // <<<<<<<<Esto NO funciona //Sin
>> embargo contenedor.cuadradito_.onRelease = function (){
>> this.hablar(); }  // <<<< Esto SI funciona (tras hacer clic en el
>> objeto)
>>
>> ¿No es un comportamiento absurdo? :?
>>
>>
>> -----Mensaje original-----
>> De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En
>> nombre de Fede Rivas Enviado el: martes, 30 de octubre de 2007 20:19
>> Para: Lista dedicada a Actionscript
>> Asunto: Re: [ASNativos] Duda sobre elementos creados dinámente a
>> partir de objetos de la librería
>>
>> Ummm. Este mc tiene una clase vinculada segun veo no ?
>> La clase extiende de MovieClip ?
>> El método es público ?
>>
>> Por otra parte, te recomiendo no usar _root ( ya sabes, es cosa del
>> diablo ... ), y para que te sea más cómodo el código, también puedes
>> asignar una variable para todo el codigo, de este modo :
>>
>>
>>
>>> for (var i:Number = 0; i<=10; i++){
>>>
>>> var tmpMC:MovieClip =
>>> contenedor
>>> .createEmptyMovieClip
>>> ("objeto"+i,_root.contenedor.getNextHighestDepth());
>>> var subMC:MovieClip = tmpMC.attachMovie("cuadradito","cuadradito"+i,
>>> 100);
>>> subMC._x = i*100;
>>> subMC._y = 50;
>>> subMC.hablar();
>>> }
>>>
>>>
>> Quiza en el subMC tengas que tiparlo con el tipo de tu clase, para
>> que entienda q existe el metodo, la verdad no recuerdo si con AS2 se
>> lo traga o no, quizá si, con AS1 fijo se lo tragará.
>>
>> Ya nos cuentas.
>>
>> Salu2,
>>
>> Fede.
>>
>> El 30/10/2007, a las 19:52, David Bravo escribió:
>>
>>
>>
>>> Hola amiguitos:
>>> Estoy un poco bloqueado, no sé si por los incontables días que llevo
>>> trabajando sin parar o porque soy un tanto lerdo (un poco de ambas).
>>>
>>> Resulta que estoy creando una galería y tengo en la librería un
>>> movieClip que tiene ya montado un clip vacío sobre el que cargar
>>> imágenes, el código del preloader, una función de carga de imágenes
>>> (con todo el código correspondiente a la precarga) y una barrita de
>>> scroll.
>>>
>>> Pongamos un ejemplo más simplificado Objeto en la librería llamado
>>> "cuadrado" y con un identificador de "linkage"
>>> = "cuadradito"
>>> Este movieclip tiene una función básica.
>>> function hablar():Void{
>>> trace ('hola');
>>> }
>>>
>>> luego en la raiz de la película:
>>> _root.createEmptyMovieClip("contenedor",100);
>>>
>>> for (i = 0; i<=10; i++){
>>>
>>> _root
>>> .contenedor
>>> .createEmptyMovieClip("objeto"+i,_root.contenedor.getNextHig
>>> hestDepth());
>>> _root.contenedor["objeto"+i].attachMovie("cuadradito","cuadradito"+i
>>> ,
>>> 100);
>>> _root.contenedor["objeto"+i]["cuadradito"+i]._x = i*100;
>>> _root.contenedor["objeto"+i]["cuadradito"+i]._y = 50;
>>> _root.contenedor["objeto"+i]["cuadradito"+i].hablar();
>>> }
>>>
>>> Y no se ejecuta la función hablar. Haciendo traces y rollos se llega
>>> al objeto y sus propiedades (_x,_y, _xscale...) pero no a la función.
>>> ¿Alguien tiene alguna idea de si lo que estoy intentando es posible?
>>> Ya os
>>> digo que estoy agotado y ahora mismo no veo casi ni el monitor, así
>>> que lo mismo estoy pidiendo un imposible.
>>>
>>> PD: Ya sé que hay galerías por ahí, que se podría hacer con su
>>> propia clase y eso. Es simplemente ya cuestión de curiosidad... Es
>>> difícil de buscar en inet y 5dms está en mantenimiento, y releyendo
>>> post antiguos no he encontrado nada parecido.
>>> Sorry si lo que pregunto es tan simple como parece. :?
>>>
>>> Un saludo,
>>> David Bravo
>>> Dimensión Multimedia,  <http://www.dimensionmultimedia.com/> S.L.
>>>
>>>
>>> -----------------------------------------------------
>>> ASNativos
>>> www.5dms.com
>>> subscripciones/desubscripciones
>>> http://asnativos.5dms.com
>>> -----------------------------------------------------
>>>
>>>
>>>
>> -----------------------------------------------------
>> ASNativos
>> www.5dms.com
>> subscripciones/desubscripciones
>> http://asnativos.5dms.com
>> -----------------------------------------------------
>>
>>
>> -----------------------------------------------------
>> ASNativos
>> www.5dms.com
>> subscripciones/desubscripciones
>> http://asnativos.5dms.com
>> -----------------------------------------------------
>>
>>
>>
>
>
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------
>
>


-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------


-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
----------------------------------------------------- 


-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------

Responder a