Re: [ASNativos] Duda sobre elementos creados dinámen te a partir de objetos de la librería
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 -
Re: [ASNativos] Duda sobre elementos creados dinámen te 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 -
Re: [ASNativos] Duda sobre elementos creados dinámen te a partir de objetos de la librería
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
Re: [ASNativos] Duda sobre elementos creados dinámen te a partir de objetos de la librería
Offf es q estoy fatal, estas con AS1. Define la funcion así , dentro del mc a ver : this.hablar = function(){ trace(bla bla); } Perdona, pero es q estoy espeso hoy de narices xD Salu2! Fede. El 30/10/2007, a las 20:41, 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 -
Re: [ASNativos] Duda sobre elementos creados dinámen te 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 -
Re: [ASNativos] Duda sobre elementos creados dinámen te 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
Re: [ASNativos] Duda sobre elementos creados dinámen te a partir de objetos de la librería
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' asnativos@5dms.com 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: