Código ActionScript :
// Botón para salir sin que se perjudiquen las grabaciones: on (release, keyPress "<Enter>") { _root.Stp = 0; } // Frame 1: loadVariables ("num1.txt", ""); // La primera vez que se abre carga estas variables: num=1, YC=1, Y=2.1, XC=0, después depende de cuales hayan sido sus valores cuando el programa se cierra. // Frame 2: Stp = 1; XC = Number (XC)+1; X = Number (XC)*0.1+2; num = Number (num)+1; if (X>41.91) { XC = 0; X = 2; YC = Number (YC)+1; Y = 0.1*YC+2; } // Frame 3: if (Number (Y)>41.91) { stop (); } else { fscommand ("save", "im1/im1_"+num+".txt"); fscommand ("save", "num1.txt"); if (Stp == 0) { stop (); fscommand ("quit"); } gotoAndPlay (2); }
Notas:
- No sé cómo hacer que las variables guardadas sean números (o sea por ejemplo 4 en vez de "4", texto), por eso hay tantos "Number" en el código.
- Los XC y YC son contadores para multiplicar, tuve que hacerlo así porque el programa al sumar era demasiado inexacto (suena joda pero no, en vez de sumar 0.1 a veces sumaba 0.09999... o 0.10...1, etc).
Como la velocidad conque genera los archivos está limitada a la velocidad de la película, en vez de ser la máxima que la computadora pueda tener, intenté mejorarlo:
Código ActionScript :
// El botón y el frame 1 no tienen modificaciones. // Frame 2: Stp = 1; // Frame 3: do { fscommand ("save", "im1/im1_"+num+".txt"); fscommand ("save", "num1.txt"); if (Stp == 0) { stop (); fscommand ("quit"); } XC = Number (XC)+1; X = Number (XC)*0.1+2; num = Number (num)+1; } while (Number (X)<41.91); // Frame 4: XC = 1; X = 2.1; YC = Number (YC)+1; Y = 0.1*YC+2; if (Y>41.91) { stop (); } gotoAndPlay (3);
Notas:
- La idea es que ni X ni Y lleguen a valer 42, no probé bien si eso funciona. Tampoco creo que el reinicio funcione bien.
Este graba 400 archivos a la velocidad de la computadora, luego 1 a la velocidad de la película, y reinicia (la cagada de Flash es que si el proyector no avanza frames pone un cartel, y si avanza frames no graba a la velocidad máxima...), EL PROBLEMA ES QUE LOS 400 ARCHIVOS QUE GRABA TIENEN LOS MISMOS DATOS, salvo el nombre Xb ¿POR QUÉ?
Por lo que leí hay acciones que no están controladas, o sea normalmente si el paso 1 es establecer una variable, no se inicia el paso 2 hasta que la variable haya sido establecida, pero si el paso es grabar un archivo, parece que empieza a grabarse y si después se modifican las variables que se están grabando entonces graba las modificaciones, porque no espera que termine de grabarse. POR ESO QUE NECESITO UN ------------MÉTODO PARA CONTROLAR QUE LOS ARCHIVOS TERMINARON DE GRABARSE----------, podría ser algo para ver cuanto tamaño tiene el archivo, porque si luego de un tiempo no aumenta es porque terminó de grabarse.
Lo otro que se me ocurre es cargar el archivo guardado, pero para comprobar tengo que romper o cambiar las variables que no sé si terminaron de grabarse T.T ¡¡¡y si lo cargo dentro de una película se me hace un quilombo el código!!!
Lo otro es que constantemente se abran y cierren 2 programas, pero no podría cerrarlos XDDDDD (con ctrl alt supr sí, pero un archivo se grabaría por la mitad o quien sabe qué).
En serio ----------si lo hago cargando variables en una película se hace un quilombo, ¿¡no hay una manera más simple!?---------- Además no sé bien cómo caraj* funciona ese "OnClipEvent (data)", ¿si llega al frame donde esté eso se detiene hasta que lleguen los datos o tengo que hacer un loop con go to? Tengo que probar sí, pero es un quilombo!!!!!!!!!!!!