![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+3 17.12.07]
[+3 04.04.08] Регистрация: Oct 2007
Сообщений: 42
|
Привет всем!
Задачка и условия задачки ![]() есть 3 мувика - текст. они вставлены в мувик text_mc, каждый в своем слое. очень нужен небольшой скрипт который: рандомно плавно передвигал мувики-объекты в облости 200х200пикс. рандомно плавно увеличивал а потом уменьшал видимость мувиков-объектов. - должен получиться эффект переплитающихся, появляющихся и исчезающих 3х слов. ... возможно еще добавить блюр эффект.. но думаю если будет пример то справлюсь. text01_mc.onEnterFrame=function(){
if(jtext01_mc._alpha<100){
text01_mc._alpha+=random(27)+75;
} else{
//delete this.onEnterFrame;
}
}
.... помоги скриптиком.. ![]() Всем откликнувшимся большое спасибо! |
|
|||||
|
[+3 17.12.07]
[+3 04.04.08] Регистрация: Oct 2007
Сообщений: 42
|
Вот нашел в инете один пример-исходник:
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;
};
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;
}
|
|
|||||
|
Есть такой класс - Tween. (flash.transitions.Tween)
Почитать о нем можно в хэлпе. Там же есть пример, как заставить шарик переместиться из 1 позиции в другую. Ага!!! Далее находим хэлп по событию onMotionFinished Как только движение заканчивается, вызываем новое движение и повторяем все по кругу. Можно пользоваться setInterval и делать метод continueTo(); Сделали, что надписи мечуться. Теперь размер и альфа? Делаем аналогичные оперции с размером. Причем, чем больше мы увеличиваем размер, тем больше увеличиваем альфу. И наоборот. Добавляем блюр и вуаля - наша мечта воплотилась в жизнь!
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
[+3 17.12.07]
[+3 04.04.08] Регистрация: Oct 2007
Сообщений: 42
|
Цитата:
Но вот с setInterval еще не знаком. Главное: в какой-то статье читал что применение класса flash.transitions.Tween увеличивает ролик на 5кб... мне это немного критично - нужно сделать все как можно меньше по размеру. А приведенный пример никак не получиться до ума довести? ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вот Вам примерчик. Попытки прикрутить блюр привели к краху Флэш CS3 ))))
Думаю, количество необходимых рассчетов при плавающих альфах, блюре и позициях слегка зашкаливает. Ну и руки у меня не всегда оттуда растут))) Если прикрутите, будет Вам счастье.
__________________
Reality.getBounds(this); |
|
|||||
|
[+3 17.12.07]
[+3 04.04.08] Регистрация: Oct 2007
Сообщений: 42
|
![]() ![]() ОГОРОМНОЕ спасибо! Отлично! Вот немного попытался доработать код.. но что-то не получается: 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);
};
Добавил позже: анимация блюра и размеров должна быть плавной и пропорциональной. Последний раз редактировалось blacks; 26.05.2008 в 19:25. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну, должна-не должна, уж как получилось))))
p.S. Будете переделывать - сохраняйтесь всё время, флэш вылетает постоянно при тестировании. После того как добавил удаление фильтра, стало значительно стабильнее, но пару раз таки свернулся))))
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|