Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Анимация: movie+alpha+blur все в AS 2.0. (http://www.flasher.ru/forum/showthread.php?t=112576)

blacks 02.06.2008 08:33

Анимация: movie+alpha+blur все в AS 2.0.
 
Вложений: 2
Привет всем!
И снова вопрос! :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];
};

Ребятушки помогите если не сложно!
СПАСИБО!

Psycho Tiger 02.06.2008 11:19

А что конкретно у вас не получается?
Я прошелся поиском по всему вашему посту - искал знак "?". Так и не нашел.
Выкладываение "хочу получить вот это" больше относиться к разделу вакансий.
Поставьте четко вопрос, чтобы на него можно было ответить. Спасибо.

Alex_beginner 02.06.2008 13:44

Psycho Tiger! Вы же видите, у человека что-то неполучается, т.е он незнает в какой части кода и как происходит сбой и просит о помощи.
Давайте лучше подумаем где все таки сбой или баг!

blacks! Пожалуйста, если возможно залейте исходник в формате Flash8, а то я посмотреть хочу кто такой gf, my_mc итд.

blacks 02.06.2008 18:46

Цитата:

Сообщение от Alex_beginner (Сообщение 743184)
Psycho Tiger! Вы же видите, у человека что-то неполучается, т.е он незнает в какой части кода и как происходит сбой и просит о помощи.
Давайте лучше подумаем где все таки сбой или баг!

blacks! Пожалуйста, если возможно залейте исходник в формате Flash8, а то я посмотреть хочу кто такой gf, my_mc итд.

Спасибо Alex_beginner!
Примеры же есть в аттаче к посту - example.zip :rolleyes:

Alex_beginner 02.06.2008 19:44

Неее! Вы меня не поняли. Я знаю что в аттаче есть, проблема с форматом файлов - Вы делали его в Adobe CS3, а у меня Flash8 , и у меня не открываются файлы.

Vektor 02.06.2008 22:16

Alex_beginner- Почему не переходите на CS3?

etc 02.06.2008 23:22

Цитата:

Сообщение от Vektor (Сообщение 743268)
Alex_beginner- Почему не переходите на CS3?

На то это у многих есть ряд объективных причин, но эта тема не подходит для выяснения данного вопроса, особенно, когда есть возможность пересохранить под восьмую версию.

blacks 03.06.2008 13:25

Вложений: 1
Ок сорри :rolleyes: - сразу не понял.
Воть:

Alex_beginner 03.06.2008 18:04

blacks! Все же я немогу "въехать" в проблему.
Давайте попробуем наводящими вопросами разобраться.
1. Что представляют собой сценарии, единое целое, выполняющееся одновременно или же цепочка последовательных действий;
2. Если все сценарии НЕ единое целое, необходимо распределить их во времени и пространстве, т.е точно знать в какой момент времени должен поменяться blurX, например. Так же нужно знать при каком значении X это должно быть произведено.
3. Теперь если это единое целое, нужно знать граничные условия Xначала_движения, Yначала_движения, X конца_движения, Yконца_движения.

p.s. Лучше все процессы, то бишь движение, блюр, альфа-блендинг итд сделать в совокупности, во избежании путаницы и неработоспособности кода.

blacks 03.06.2008 19:53

Дя вроде неплохой сценарий был.... :rolleyes:
и в SWF ролике вроде все видно...

весь сценарий написан в одном кадре клипа mc, в AS 2.0
в этом клипе на одном слое объект на втором сценарий.

по сценарию:
1. объект с самого начала мувика движеться только по горизонтали с постоянной скоростью
на расстояние допустим в 200 пикселей справа на лево.
Изначально у обьекта alpha=0%, blur=10(по Y и X).

2. в первые 2сек: анимация обьекта
из - alpha=0%, blur=10(по Y и X)
в - alpha=100%, blur=0(по Y и X)

3. след 2 сек объект просто продолжает двигаться.

4. последнии 2сек: анимация обьекта
из - alpha=100%, blur=0(по Y и X)
в - alpha=0%, blur=10(по Y и X)

5. стоп / переход на первый кадр и стоп

Вот вроде и все... вроде просто да вот не сделать...:wacko:


Часовой пояс GMT +4, время: 10:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.