Просмотр полной версии : Рандомное движение и альфа 3х мувиков
Привет всем!
Задачка и условия задачки ;)
есть 3 мувика - текст.
они вставлены в мувик text_mc, каждый в своем слое.
очень нужен небольшой скрипт который:
рандомно плавно передвигал мувики-объекты в облости 200х200пикс.
рандомно плавно увеличивал а потом уменьшал видимость мувиков-объектов.
- должен получиться эффект переплитающихся, появляющихся и исчезающих 3х слов.
... возможно еще добавить блюр эффект.. но думаю если будет пример то справлюсь.
_root.text01_mc._x = random(2)+470;
text01_mc.onEnterFrame=function(){
if(jtext01_mc._alpha<100){
text01_mc._alpha+=random(27)+75;
} else{
//delete this.onEnterFrame;
}
}
- данные коды пока не мне не очень помогли...
.... помоги скриптиком.. :rolleyes:
Всем откликнувшимся большое спасибо!
Вот нашел в инете один пример-исходник:
rnd_movie_original.fla
Изменил его:
rnd_movie_text.fla
- но после того как оригинал переместил в мувик все стало очень быстро дергатьсяв.
Вот пример того что хочеться сделать
rnd_movie_demo.swf
(пример собран в анимации "методом ручек", количество кадров увеличено для скорости отображения)
Также нашел нижеследующие варианты-части от которых наверно стоит отталкиваться.
Но.. ничего толком в них не понимаю.
Возможно имея приведенный выше пример и коды ниже вам будет легче помочь мне.
Ребятки... очень нужно уменьшить вес ролика переделав все в рандом помогите плиз :clap: !!
Код 1:
var arraySpeed:Array = [5, 10, 15];
var speed:Number = arraySpeed[Math.floor (Math.random () * 3)];
stars.onEnterFrame = function () {
this._x += speed;
};
Код 2:
var w:Number =Stage.width;
var h:Number = Stage.height;
var dx:Number = 5;
var dy:Number = 5;
function move():Void{
mc.onEnterFrame = function(){
if(_x>(w-_width/2) || _x<_width/2){
dx *= -1;
//проиграть звук
}
if(_y>(h-_height/2) || _y<_height/2){
dy *= -1;
//проиграть звук
}
_x += dx;
_y += dy;
}
}
move();
Код 3:
function randAlpha(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}
function randMove(xPos:Number, yPos:Number):Number {
_global.xPosition;
_global.yPosition;
a=randAlpha(-2,2);
b=randAlpha(-2,2);
xPosition=xPos+a;
yPosition=yPos+b;
xPosition+=a;
yPosition+=b;
}
Код 4:
mc.onEnterFrame = function zzz(){
mc._x = random(200-mc._width);
mc._alpha = random(50)+50;
}
/// - плюс нужно както добавить нижеследующие
function zzz (параметры перемещения) {
...
описание функции
...
}
setInterval (zzz,интервал вызова функции, параметры перемещения);
Psycho Tiger
25.05.2008, 11:01
Есть такой класс - Tween. (flash.transitions.Tween)
Почитать о нем можно в хэлпе. Там же есть пример, как заставить шарик переместиться из 1 позиции в другую. Ага!!!
Далее находим хэлп по событию onMotionFinished
Как только движение заканчивается, вызываем новое движение и повторяем все по кругу. Можно пользоваться setInterval и делать метод continueTo();
Сделали, что надписи мечуться. Теперь размер и альфа?
Делаем аналогичные оперции с размером. Причем, чем больше мы увеличиваем размер, тем больше увеличиваем альфу. И наоборот. Добавляем блюр и вуаля - наша мечта воплотилась в жизнь!
Есть такой класс - Tween. (flash.transitions.Tween)
Почитать о нем можно в хэлпе. Там же есть пример, как заставить шарик переместиться из 1 позиции в другую. Ага!!!
Далее находим хэлп по событию onMotionFinished
Как только движение заканчивается, вызываем новое движение и повторяем все по кругу. Можно пользоваться setInterval и делать метод continueTo();
Сделали, что надписи мечуться. Теперь размер и альфа?
Делаем аналогичные оперции с размером. Причем, чем больше мы увеличиваем размер, тем больше увеличиваем альфу. И наоборот. Добавляем блюр и вуаля - наша мечта воплотилась в жизнь!
Примерно понял как...
Но вот с setInterval еще не знаком.
Главное: в какой-то статье читал что применение класса flash.transitions.Tween увеличивает ролик на 5кб... мне это немного критично - нужно сделать все как можно меньше по размеру.
А приведенный пример никак не получиться до ума довести?:rolleyes:
Вот Вам примерчик. Попытки прикрутить блюр привели к краху Флэш CS3 ))))
Думаю, количество необходимых рассчетов при плавающих альфах, блюре и позициях слегка зашкаливает. Ну и руки у меня не всегда оттуда растут)))
Если прикрутите, будет Вам счастье.
Вот Вам примерчик.
:eek::yahoo:
ОГОРОМНОЕ спасибо! Отлично!
Вот немного попытался доработать код.. но что-то не получается:
1. блю вообще не работает.
2. размер меняется хаотично... - как сделать чтоб рандомный размер мувиков менялся пропорционально (ширина и высота)
СПАСИБО!
import flash.filters.BlurFilter;
xmin = 0
xmax = 150
ymin = 0
ymax = 40
//alpha
amin = 100
amax = 100
// scale
smin = 100
smax = 100
tmin = 90
tmax = 100
//blur
bmin = 0
bmax = 100
t1_mc.complet = t2_mc.complet = t3_mc.complet = true
//
generateCell (t1_mc);
generateCell (t2_mc);
generateCell (t3_mc);
//
t1_mc.onEnterFrame = t2_mc.onEnterFrame = t3_mc.onEnterFrame = function () {
this.complet = Math.ceil(this._x) == this.xcell && Math.ceil(this._y) == this.ycell;
this.complet ? generateCell(this) : moveIt(this);
};
//
//t1_mc.filters = [new BlurFilter(2,2,2)];
//t2_mc.filters = [new BlurFilter(2,2,2)];
//t3_mc.filters = [new BlurFilter(2,2,2)];
//
function moveIt (mc:MovieClip) {
mc._x = mc._x + (mc.xcell - mc._x)/20
mc._y = mc._y + (mc.ycell - mc._y)/20
mc._alpha = mc._alpha + (mc.acell - mc._alpha)/16
_yscale = _xscale;
mc._yscale = mc._yscale + (mc.scell - mc._yscale)/20
mc._xscale = mc._xscale + (mc.tcell - mc._xscale)/20
filter.blurY = filter.blurX;
mc.blurY = mc.blurY + (mc.bcell - mc.blurY)/4
};
//
function generateCell (target:MovieClip) {
target.acell = Math.random()*(amax-target._alpha - amin)+ amin;
target.bcell = Math.random()*(bmax-target.blurY - bmin)+ bmin;
xxx = Math.random()*(xmax-target._width - xmin)+ xmin;
yyy = Math.random()*(ymax-target._height - ymin)+ ymin;
target.xcell = Math.ceil(xxx);
target.ycell = Math.ceil(yyy);
xxx = Math.random()*(smax-target._width - smin)+ smin;
yyy = Math.random()*(tmax-target._height - tmin)+ tmin;
target.scell = Math.ceil(xxx);
target.tcell = Math.ceil(yyy);
};
----------------------
Добавил позже: анимация блюра и размеров должна быть плавной и пропорциональной.
Ну, должна-не должна, уж как получилось))))
p.S. Будете переделывать - сохраняйтесь всё время, флэш вылетает постоянно при тестировании. После того как добавил удаление фильтра, стало значительно стабильнее, но пару раз таки свернулся))))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.