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

serdeles 21.05.2010 15:35

Помогите настроить Blur
 
Вложений: 1
Код AS1/AS2:

import flash.filters.BlurFilter;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
 
var blur:BlurFilter = new BlurFilter(10, 10, 3);
 
blur_button.onPress = function(){
        var bmp:BitmapData = new BitmapData(Stage.width, Stage.height, false, 0xFFFFFF);
        this._visible = false;
        var rect:Rectangle = new Rectangle(0,0,Stage.width, Stage.height);
        var point:Point = new Point(0,0);
        bmp.draw(_root);
        _root.attachBitmap(bmp, _root.getNextHighestDepth(), "auto", true);
        bmp.applyFilter(bmp,rect,point,blur);
        this.swapDepths(_root.getNextHighestDepth());
        this._visible = true;
 
        close_btn.onPress = function(){
        bmp.dispose();
        _root.blur_button.enabled = true;
        this._parent.removeMovieClip();
        }
 
        close_btn.swapDepths(_root.getNextHighestDepth());
        oval.swapDepths(_root.getNextHighestDepth());
 
        this.enabled = false;
        }

Под close_btn, и oval после применения фильтра Blur появляется тень (их разблёренная копия). В то же время, под blur_button её нет.

Помогите избавиться от тени под close_btn, и oval.
Исходник в CS3.

serdeles 24.05.2010 11:04

Неужели нет вариантов?

mooncar 24.05.2010 11:20

Для начала. У вас вот это что такое? Это у вас обработчик написан внутри другого.
Код AS1/AS2:

        close_btn.onPress = function(){
        bmp.dispose();
        _root.blur_button.enabled = true;
        this._parent.removeMovieClip();
        trace(this);
        }

Трейс посмотрите-ка что выводит.
Вы этого ожидали?

Не пишите одни обработчики внутри других.
Если нужно динамически назначать функцию-обработчик, то пользуйтесь конструкциями вида
Код AS1/AS2:

btn.onPress = function() {
  ....
  otherBtn.onPress = othBtnOnPress;
};
 
function othBtnOnPress () {
 ...
}

Тогда и понятнее будет, что и как происходит. Дальше не смотрел, потому что неясно, что там и как должно быть.
PS. Попробуйте swapDepths убрать в конце, кстати, и посмотрите, что выйдет.

serdeles 24.05.2010 11:26

Если бы я хорошо знал синтаксис AS, написал бы грамотнее. Основной код нашёл тут http://www.flasher.ru/forum/showpost...ostcount=10%29.

Дописывал сам, пытаясь экспериментировать. Максимум, чего добился — в моём коде и исходнике. В чём проблема, описал в топике и приложил исходник для наглядности.

Честно искал решение в поиске, да и сам пытался, но не получилось. Поэтому, собственно, и обращаюсь с вопросом.

mooncar 24.05.2010 11:28

Вот я и спрашиваю - что вы хотите, собственно? Какого поведения?

serdeles 24.05.2010 11:32

Ну, проблема в том, что под close_btn и oval возникает их заблёренная копия. А нужно, чтобы не возникало — под blur_btn копии с блёром нет.

Над этим уже третьи сутки бьюсь, но так ничего и не выходит (

mooncar 24.05.2010 11:33

Код AS1/AS2:

        close_btn.swapDepths(_root.getNextHighestDepth());
        oval.swapDepths(_root.getNextHighestDepth());

Закомментриуйте, уберите.

serdeles 24.05.2010 11:36

Но ведь это помогает поднять их наверх?
Сейчас попробую...

mooncar 24.05.2010 11:36

Копия заблеренная не "возникает", а остается, так как слепок вы делаете по всему _root, а эти мувики там есть.
Вытащите все рисунки, которые надо "блерить", в отдельный мувик и делайте слепок с него, а не с _root.

serdeles 24.05.2010 11:37

То есть, мне нужно прописать имена только тех мувиков, которые надо размыть? Логика понятна. А если их будет много? Все перечислять?


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

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