2Darina
Объясняю, что за бывшая проблема с блоками. Как видишь, я применил определение достижения
границы текстового блока как i%blockSize==0 (blockSize, например, равен 40). Это значит, что 0-й, 40-й,
80-й и т.д. символы будут определены, как граничные. Но. Если, как раньше, увеличивать размер блока
при tipText.substr(i, 1)!=" ", то будет деление сначала на 41, потом на 42 и т.д., а 81%41 уже
!=0, а только 82%41. Получается, что условие i%blockSize нормально сработает только для первой строки.
Я думаю, это и так всё понятно, просто не было очевидно до дебага.
Про "приехали":

Код:
for(i=0; i<=tipText.length-1; i++) {
j++;
if(yPrev != this["char"+i]._y) {
j = 0;
yPrev = this["char"+i]._y;
}
var xplace = j*this["char"+i].char_shape._width/2+70;
if(this["char"+i]._x < xplace) {
this["char"+i]._x += appearRandomSpeed[i];
if(this["char"+i]._x >= xplace) {
this["char"+i]._x = xplace;
}
}
}
}
Я тоже думал увеличивать переменную. Если она не будет увеличиваться несколько раз за символ, который
встал на место раньше других. Скажем, так:

Код:
...
if(this["char"+i]._x > xplace) {
this["char"+i]._x = xplace;
finished++;
}
...