Estoy en proceso de crear un generador de texto rotativo. El generador combina oraciones (texto) de un número de matrices, 'ciclos' a través de ellos visualmente y los agrega. Pensé que lo mejor para crear un violín con una basic version of the generator como he construido ahora:Generador de texto rotativo
Explicación
El funcionamiento básico es el siguiente:
- Las frases se definen en matrices independientes (
Array1
,Array2
yArray3
en el violín) - Se define un segundo conjunto de matrices, que contiene las matrices que se pueden combinar (
combo0
ycombo1
en el violín) - Al pulsar el botón 'Generar', la función
Generate
se llama, que visualmente ciclos de las frases de una serie de frases (combo0[0]
en el violín) - los bucles Esta función misma hasta que la sentencia ha completado un ciclo 8 veces (
var times = 8
en el violín) - Cuando se hace esto, la función llama a la función de devolución de llamada que se proporcionó. En esta devolución de llamada, se ejecuta
Generate
de nuevo, esta vez con la segunda matriz (combo0[1]
en el violín)
La razón de la devolución de llamada es que necesito 'espera' para el efecto de la bicicleta para completar, y luego mover en.
La cuestión
Si bien esto es exactamente lo que necesito (y además el hecho de que soy muy dudoso si esta es la manera de hacerlo, siempre me siento un poco extraño cuando se escribe una función que bucles), tengo el siguiente problema:
En las matrices combo
, defino cuál de las matrices 'ora' pueden existir combinaciones posibles. Esto funciona bien si hay dos combinaciones, pero con más de dos, tengo un problema:
Generate(combo0[0], i, function(i) { //generate from first array element of combo0, callback to generating from second array of combo0
Generate(combo0[1], i, function(i) {
$('div#status').html('Done!'); //show status
$('input#generate').removeAttr("disabled"); //enable button
});
})
tendría que volver a escribir de forma recursiva esta para dar cabida a la posibilidad de una matriz combo
que consiste en 3 o incluso 4 opciones. Y probablemente esto rompa la secuencia de comandos si una matriz combo
contiene solo 2 (o 1) matrices.
Aquí es donde estoy atascado. El problema principal es que si recorro la matriz combo
, p. con .each() ;, la función generate
se llama varias veces de forma síncrona, por lo que se pierde todo el efecto de 'ciclo'.
He intentado escribir varios loops, que tienen en cuenta la longitud de la matriz dada combo
, pero hoy he bloqueado más navegadores que nunca, y no sé qué hacer.
Entonces, ¿necesita una secuencia de comandos que pueda pasar por varias matrices, un elemento a la vez, hasta que llegue a un determinado elemento en la matriz, y luego progrese a la siguiente matriz, y presente cada paso visualmente? – Luka
Bueno, no un cierto artículo; un elemento aleatorio de una matriz. Necesita imprimir un elemento de matriz x veces, luego, finalmente, escriba uno y continúe con el siguiente. Básicamente, todo lo que necesita hacer es trabajar en el Fiddle (ver mi publicación), a excepción de una matriz que contiene más de 2 matrices. –
_Creía que era mejor crear un Fiddle_ - ¡sí! +1 – halfer