Hace como un año, en la empresa donde trabaja nos topamos con un gran problema con la clase Tween. El problema era que los eventos aveces no se ejecutaban. Se perdían en el infierno. Un compañero modifico la clase y asunto arreglado.
Después deje de trabajar ahí, y al poco tiempo tuve de nuevo el problema, con mas tiempo y sin ganas de hacer cochinadas me puse a ver porque pasaba esto.
Esto se debe a que estamos/estábamos acostumbrados a hacer las cosas al viejo estilo de as:
Código :
function move():void{ var tween:Tween = new Twen(....); tween.addEventListener(...); }
Pero claro ahora tenemos un garbage collector que algunos claman que funciona y yo en lo personal digo que apesta.
Si ha alguien le ha pasado esto es muy sencillo de resolver tan solo hay que poner la variable del tween como una variable de clase y no como una variable local de la función.
Código :
var tween:Tween; function move():void{ tween = new Twen(....); tween.addEventListener(...); }
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Otaku RzO-blog :
Bingo.
Funciona con el mismo motor que McTween pero es para ActionScript 3
Yo las uso y jamas tengo problemas, y cuando las quiero borrar de memoria, hay una funcion que las remueve por completo
Por eldervaz el 06 de Febrero de 2009
http://drawlogic.com/2009/02/05/as3-tween-engines-getting-lighter-with-gtweeny-bytetween-tweenlite-and-tweensyzero/
Es decir, se pierde el acceso a ella y esta se mantiene como anónima consumiendo memoria. Como jamás se elimino manualmente el garbage collector (que si funciona pero que muy pocos entienden como) nunca la borra de memoria.
No es problema de la clase si no un poco de teoría de scoping de variables.
@eldervas, a ver si te haces un artículo sobre el gc para aprender todos
P.D: como edito un post aqui?! argh
fernando :
M@U :
fernando :
MWAHAHAHAHAHAHAHA!!!
Por illo_guay el 12 de Febrero de 2009
Yo tengo un problemilla y aunque no es de la clase tween tiene algo de relacion y quizas podais ayudarme. El caso es que en el archivo fla, tengo entre otras cosas una llamara a un archivo .as para crear un objeto de este.
Mas tarde en el archivo fla cuando se pulsa un boton determinado, elimino ese objeto y lo vuelvo a crear y lo gracioso es que no me lo borra, sino que me crea otro nuevo y me veo en la interfaz con el mismo objeto dos veces.... no se si me entendeis.
Lo que hago es lo siguiente.
A la hora de intentar eliminar el objeto, dentro de la function a la que llama el evento del boton primero elimino del stage dicho objeto.
removeChild(demo);
Luego lo vuelvo a crear.
demo.creaVentanas("Primera Ventana", 0, 140, 400, 200, stage.x, stage.y, stage.stageWidth, stage.stageHeight);
Y por ultimo lo vuelvo a mostrar en el stage.
addChild(demo);
Alguien sabe porque ocurre o si es problema del garbaje colector o algo asi???
Quizas sea una pregunta muy tonta pero es que soy bastante nuevo en esto.
Muchas gracias a todos de antemano.
Por sisco_out el 03 de Marzo de 2009
Por eva carnales el 21 de Marzo de 2009
Por Christian A.G el 18 de Noviembre de 2013