Код:
import flash.display.BitmapData;
import flash.geom.Rectangle;
function setScrollString(clipName, x, y, width, textSize, textName, scrollSpeed, textString){
var clip = this.createEmptyMovieClip(clipName, this.getNextHighestDepth());
var textMovie = clip.createEmptyMovieClip("textMovie", clip.getNextHighestDepth());
var maskMovie = clip.createEmptyMovieClip("maskMovie", clip.getNextHighestDepth());
var fmt:TextFormat = new TextFormat();
fmt.font = textName;
fmt.size = textSize;
var txt:TextField = textMovie.createTextField("txt", textMovie.getNextHighestDepth(), 0, 0, 10, textSize);
txt.text = textString;
txt.autoSize = true;
txt.setTextFormat(fmt);
var txtClone:TextField = textMovie.createTextField("txtClone", textMovie.getNextHighestDepth(), 0, 0, 10, textSize);
txtClone.text = textString;
txtClone.autoSize = true;
txtClone.setTextFormat(fmt);
if(width > txt._width) width = txt._width;
var myBitmapData:BitmapData = new BitmapData(width, textSize+4, false, 0x00CCCCCC);
maskMovie.attachBitmap(myBitmapData, maskMovie.getNextHighestDepth());
myBitmapData.rectangle = new Rectangle(0, 0, width, textSize);
clip._x = x;
clip._y = y;
textMovie.setMask(maskMovie);
clip.onEnterFrame = function(){
if(txtClone._x < 0){
txt._x = txtClone._x
}
txt._x -= scrollSpeed;
txtClone._x = txt._width + txt._x;
}
return clip;
}
var string1 = setScrollString("string1", 10, 10, 200, 14, "Arial", 2, "Засунь сюда строку любой длинны и это должно работать =). Это один из плохих способов сделать бегущую строку. ");
var string2 = setScrollString("string2", 30, 30, 300, 12, "Arial", 1, "Даже очень короткий текст.");
var string3 = setScrollString("string3", 50, 50, 100, 6, "Arial", 3 ,"И даже очень мелкий, но главное не забуть поставить скорость проигрывания 30 FPS");
trace("ALiEN@eyelinkmedia.com");
Вот посмотри я набросал вариантик ... может поможет? :victory:
|