Форум 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)
-   -   Постоянное проигрывание (DisplacementMapFilter) (http://www.flasher.ru/forum/showthread.php?t=125047)

Green DeviL 15.05.2009 10:18

Постоянное проигрывание (DisplacementMapFilter)
 
:bye: Есть вот такой код -
Код AS1/AS2:

displace_mc.createEmptyMovieClip("perlin", 2);
var ramp:MovieClip = displace_mc.ramp;
ramp.swapDepths(2);
var speed = 19;
var channel = 1;
var mode = "clamp";
var flapY = 20;
var flapX = 0.6;
var offset = new flash.geom.Point(-30, 0);
var displaceBitmap:flash.display.BitmapData = new flash.display.BitmapData(ramp._width, ramp._height);
var displaceFilter:flash.filters.DisplacementMapFilter = new flash.filters.DisplacementMapFilter(displaceBitmap, offset, channel, channel, flapX, flapY, mode);
var baseX = 70;
var baseY = 0;
var octs = 1;
var seed = Math.floor(Math.random() * 50);
var stitch = true;
var fractal = true;
var gray = false;
var noiseBitmap:flash.display.BitmapData = new flash.display.BitmapData(500, 1);
noiseBitmap.perlinNoise(baseX, baseY, octs, seed, stitch, fractal, channel, gray);
var shift:flash.geom.Matrix = new flash.geom.Matrix();
onEnterFrame = function(Re){
 
 
        shift.translate(speed, 12);
 
 
        with (displace_mc.perlin){
                clear();
                beginBitmapFill(noiseBitmap, shift);
                moveTo(0,0);
                lineTo(ramp._width, 0);
                lineTo(ramp._width, ramp._height);
                lineTo(0, ramp._height);
                lineTo(0, 0);
                endFill();
        }
 
 
        displaceBitmap.draw(displace_mc);
 
        flag_mc.filters = [displaceFilter];
}

И есть полоска ткани , которая искажается (искривления)под его воздействием,но потом анимация исчеазает, как добиться постоянного воздействия кода ? (тоесть я так понимамаю постоянное проигрывание), как я не бился все бестолку :(

Добавлено через 1 минуту
Может это все как-то красиво загнать в функцию? :( тока как?

Волгоградец 15.05.2009 10:42

Не понял, что значит анимация исчезает? Она будет бесконечно проигрываться, пока действителен onEnterFrame.

Michaael 15.05.2009 10:45

да не должна исчезать... у меня не исчезает.... воткнул этот код и все ок...
Может из-за разности в слоях ?
Код AS1/AS2:

ramp.swapDepths(2);

сделай по другому
Код AS1/AS2:

this.ramp.swapDepths(-10000);

просто у меня картинка перекрывала вывод фильтра этого сверху.. или у тебя картинка прозрачная ?

Green DeviL 15.05.2009 10:50

Michaeal
Спасибо, проигрывается и не гаснет, но стала сильно дергаться , как понизить теперь ее еколебания?

Добавлено через 5 минут
Цитата:

Код AS1/AS2:

this.ramp.swapDepths(-10000);


- этот код , теоритически когда-то повлияет на спад анимации?
Слой с кодом, должен быть выше чем слой с flag_mc или
displace_mc? Какой правильный порядок?

Добавлено через 18 минут
Вот как оно 1 - слой с кодом 2 - полоска
http://img.pixs.ru/images/smjpg_8252186_220595.jpg

Michaael 15.05.2009 11:23

непонятно на счет дерганья... может кадров мало в секунду ?
flag_mc должен быть выше
displace_mc можно невидимым сделать displace_mc._visible=false;

Есть параметр speed можно им поиграться

Green DeviL 15.05.2009 11:32

Michaael , спасибо друг :)


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

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