Показать сообщение отдельно
Старый 02.06.2008, 08:33
blacks вне форума Посмотреть профиль Отправить личное сообщение для blacks Найти все сообщения от blacks
  № 1  
Ответить с цитированием
blacks

Регистрация: Oct 2007
Сообщений: 42
Question Анимация: movie+alpha+blur все в AS 2.0.

Привет всем!
И снова вопрос! :blush:
Копался уже 4 дня, перебрал кучу примеров... но сдвиг не сильный. :clap:
(а вот изучать флеш с 0'ля как-то все времени нехватает :blush: )

В приаттаченном файле есть видео-пример(маленький swf) того что пытаюсь сделать.
Свиду все вроде просто... но вот что-то не получается :мда:
Злость берет....

Сценарий (Action Script 2.0):
0.
- mc двигается с права налево с постоянной скоростью. все три части. после третьей переход на первый кадр и стоп.

1.
- первая часть: mc (alpha=0; blur=y10,x10) плавная анимация фильтра и альфы = mc (alpha=100; blur=y0,x0)

2.
- вторая часть: некоторое время при alpha=100; blur=y0,x0 mc продолжает двигаться.

3.
- третья часть: mc (alpha=100; blur=y0,x0) плавная анимация фильтра и альфы = mc (alpha=0; blur=y10,x10)

(таже первая часть только проигранная наоборот, правда ролик продолжает двигаться)
возможно может можно :blush: сделать "повтор" кода намации для фильтра альфы... но не наю правильно ли это...


Вот собственно и все.
Все делаеться как можно меньше размером.. поэтому и выбран AS

Ноно сделать без:
Код:
import mx.transitions.Tween;
import mx.transitions.easing.*;
(прибавляет весу)

После видео-примера прилагаю те варианты от которых отталкивался чтоб написать данный скрипт.
Также вот коды из тех примеров (чтоб не париться с скачкой и открыванием)

01.цикл.fla
Код:
import flash.filters.BlurFilter;

my_mc.filters = [new BlurFilter()];
 var dir:Number = 1;
 my_mc.blur = 10;my_mc.onEnterFrame = function() {
   my_mc.blur += dir;
   if ((my_mc.blur >= 30) || (my_mc.blur <= 10)) { 
    dir *= -1;
   }
   var filter_array:Array = my_mc.filters;
   filter_array[0].blurX = my_mc.blur;
   filter_array[0].blurY = my_mc.blur;
   my_mc.filters = filter_array;
 };
02.red_dot.flv
Код:
import flash.filters.BlurFilter;

var targetX:Number = 200;
var velocity:Number = 20;
var distanceX:Number;
var movementX:Number;
var blurAmount:Number = 10;
var blur = new BlurFilter(blurAmount, blurAmount, 1);

	blurAmount = 10;
//	mc._x = 200;

	mc.filters = [];
	mc.onEnterFrame = function():Void  {
  blurAmount-=0.1;
  blur.blurX = blur.blurY=blurAmount;
  mc.filters = [blur];
  distanceX = targetX-this._x;
  movementX = distanceX/velocity;
  this._x += movementX;

  if (Math.abs(this._x-targetX)<1) {
  	blurAmount+=0.5;
  	mc.filters = [blur];
  	distanceX = targetX-this._x;
  	movementX = distanceX/velocity;
  	this._x += movementX;

  }
//  	delete this.onEnterFrame;  
  
	};
03.без_остановки.fla
Код:
import flash.filters.BlurFilter;
my_mc.filters = [new BlurFilter()];

var dir:Number = 1;
my_mc.blur = 10;


my_mc.onEnterFrame = function() {
  my_mc.blur -= dir;
  if (my_mc.blur <= -1) {
    dir *= -1;
  }
  
  var filter_array:Array = my_mc.filters;
  filter_array[0].blurX = my_mc.blur;
  filter_array[0].blurY = my_mc.blur;
  my_mc.filters = filter_array;
};
04.самое_простое.fla
Код:
import flash.filters.BlurFilter;
var gf:BlurFilter = new BlurFilter(10, 10, 3);

this._x = 20.4
this._y = 20
this._alpha = 0;

this.filters = [gf];

this.onEnterFrame = function() {
	if (gf.blurX > 0) {
  gf.blurX-=1;
  gf.blurY-=1;
	}
	if(this._alpha<100){
  this._alpha+=5;  
	} 

	this.filters = [gf];
};
Ребятушки помогите если не сложно!
СПАСИБО!
Вложения
Тип файла: zip пример того что нуно сделать.zip (856 байт, 122 просмотров)
Тип файла: zip example.zip (18.9 Кб, 108 просмотров)