BBOY Ильич
30.06.2008, 19:44
Здравствуйте уважаемые флешеры! Не знаю точно, как назвать эту тему, поэтому боюсь в ответ услышать
"Название темы не отражает сути вопроса."
Суть такая. Я сделал небольшой эффект набирающегося текста. Разместил его в классе (моя первая работа с классами :) ). Все работает как надо. Но! Если не дожидаясь окончания эффекта, снова запустить его, получается что-то не очень хорошее.
Прошу помощи.
Вот пример класса:
class RandLetters {
static function randLetter(string:String,tf:TextField,speed:Number,numberOfChars:Number) {
var alp:String="a b c d e f g h u j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9 0";
var delay:Number=0;
var alph:Array=alp.split(" ");
var arr:Array=[];
var currChar:Number=0;
var randInt,randLett,i,rand;
createArr();
randInt=setInterval(randLetters,speed);
function createArr() {
for (i=0; i < string.length; i++) {
if (string.substr(i,1) != String.fromCharCode(13)) {
arr.push(string.substr(i,1));
}
}
}
function randLetters() {
rand=random(alph.length);
randLett=alph[rand];
tf.text=tf.text.substr(0,tf.text.length - 1) + randLett;
delay == numberOfChars?stopRand():delay++;
}
function stopRand() {
tf.text=tf.text.substr(0,tf.text.length - 1) + arr[currChar] + " ";
currChar < arr.length - 1?currChar++:clearInterval(randInt);
delay=0;
}
}
}
"Название темы не отражает сути вопроса."
Суть такая. Я сделал небольшой эффект набирающегося текста. Разместил его в классе (моя первая работа с классами :) ). Все работает как надо. Но! Если не дожидаясь окончания эффекта, снова запустить его, получается что-то не очень хорошее.
Прошу помощи.
Вот пример класса:
class RandLetters {
static function randLetter(string:String,tf:TextField,speed:Number,numberOfChars:Number) {
var alp:String="a b c d e f g h u j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9 0";
var delay:Number=0;
var alph:Array=alp.split(" ");
var arr:Array=[];
var currChar:Number=0;
var randInt,randLett,i,rand;
createArr();
randInt=setInterval(randLetters,speed);
function createArr() {
for (i=0; i < string.length; i++) {
if (string.substr(i,1) != String.fromCharCode(13)) {
arr.push(string.substr(i,1));
}
}
}
function randLetters() {
rand=random(alph.length);
randLett=alph[rand];
tf.text=tf.text.substr(0,tf.text.length - 1) + randLett;
delay == numberOfChars?stopRand():delay++;
}
function stopRand() {
tf.text=tf.text.substr(0,tf.text.length - 1) + arr[currChar] + " ";
currChar < arr.length - 1?currChar++:clearInterval(randInt);
delay=0;
}
}
}