Показать сообщение отдельно
Старый 29.05.2009, 10:44
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 6  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
имхо сначала режем, а потмо в битмапу) я попробовал так.
Код AS1/AS2:
import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.filters.BlurFilter;
import flash.filters.GlowFilter;
//////////////-------------- Функция появления --------------//////////////
function mcAppear(mc:MovieClip, startPos:Number, endPos:Number, time:Number):Void
{
	var mcScaleX:Tween = new Tween(mc, "_xscale", Elastic.easeOut, startPos, endPos, time, true); 
	var mcScaleY:Tween = new Tween(mc, "_yscale", Elastic.easeOut, startPos, endPos, time, true); 
	//var mcAlpha:Tween = new Tween(mc, "_alpha", None.easeNone, 0, 100, time, true); 
	var mcDispose:Tween = new Tween(mc, "_x", Regular.easeOut, mc._x - 50, mc.xx, time, true); 
}
 
function mcDisAppear(mc:MovieClip, time:Number):Void
{
	var mcAlpha:Tween = new Tween(mc, "_alpha", None.easeNone, 100, 0, time, true); 
	var mcDispose:Tween = new Tween(mc, "_x", Regular.easeOut, mc._x, mc.xx + 50, time, true); 
}
//////////////-------------- Функция перерисовки в битмапу --------------//////////////
function copyBitmap(mc:MovieClip, name:String):MovieClip
{
    var bmp = new flash.display.BitmapData(mc._width, mc._height, true, 0);
    	bmp.draw(mc);
    var clip:MovieClip = mc._parent.createEmptyMovieClip(name, mc._parent.getNextHighestDepth());
   	var bmc:MovieClip = clip.createEmptyMovieClip('bmc', 0);
		bmc.attachBitmap(bmp, 0, "none", true);
		bmc._x = - bmc._width / 2;
		bmc._y = - bmc._height / 2;
    return clip;
}
//////////////-------------- Функция заполнения --------------//////////////
function fillClip(hmc:MovieClip, str:String):Void
{
	var strArr:Array = str.split('');
	var total:Number = strArr.length;
	var offset:Number = 0;
 
	for(var i:Number = 0; i < total; i++)
	{
		var mc:MovieClip = hmc.createEmptyMovieClip('mc' + i, hmc.getNextHighestDepth());
 
		var mcFTM:TextFormat = new TextFormat();
			mcFTM.size = 16;
			mcFTM.bold = true;
			mcFTM.color = 0x999999;
			mcFTM.font = "Trebuchet";           // это линкеджй встроенного шрифта
 
		var mcTF:TextField = mc.createTextField('mcTF', 0, 0, 0, 10, 10);
			mcTF.selectable = false;
			mcTF.text = strArr[i];
			mcTF.autoSize = true; 
			mcTF.embedFonts = true;             // внимание, юзаю встроенный шрифт!
			mcTF.setTextFormat(mcFTM);
 
		var bmc:MovieClip = copyBitmap(mc, 'bmc' + i);
			bmc._x = bmc.xx = offset;
		offset += (bmc._width + 2);
			bmc._xscale = bmc._yscale = 0;
			mc.removeMovieClip();
 
		setTimeout(mcAppear, 100 * i, bmc, 500, 100, 2);
	}
}
var str:String = 'I know, what you were doing last summer...';
var hmc:MovieClip = this.createEmptyMovieClip('hmc', 0);
fillClip(hmc, str);
	hmc._x = (Stage.width - hmc._width) / 2;
	hmc._y = (Stage.height - hmc._height) / 2;
только ембед фонтс юзаните

З.Ы. вопрос, как можно прикрутить допустим фильтр глоу изменяющийся тем же твином к каждому клипу-букве что бы он работал корректно? Поясню, просто прикрутить я и сам могу, проблема в том что при анимации он ведет себя не корректно и "пикселизован", кароч выглядит не как обычно и очень неадекватно. Пробую делать так:
Код AS1/AS2:
	var mcGlow:Tween = new Tween(mc, "glow", Regular.easeOut, 10, 0, time, true); 
		mcGlow.onMotionChanged = function()
		{
			mc.filters = [new GlowFilter(0xFFFFFF, 1, glow, glow, 2, 3, false, false)];
		}


Последний раз редактировалось nOobCrafter; 29.05.2009 в 12:01.