Форум 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)
-   -   изменение прозрачности, в чем ошибка??? (http://www.flasher.ru/forum/showthread.php?t=96530)

_Nagash_ 01.06.2007 01:56

изменение прозрачности, в чем ошибка???
 
проблема в следующем (решена!):

внутри функции doSmth параметр прозрачности "alfa" изменятся, хоть его значение нигде не менятся.
т.е. при начале работы "прозрачность" его постепенно увеличивается и становиться 100%, хоть изначально она имела определное значение.


В чем ошибка и как ее можно исправить?

Вот код (drawRect - прототип мувиклипа, рисует прямогугольник:
"MovieClip.prototype.drawRect = function(x, y, width, height, color, alpha)..."
Код:

var intId = 10;
function doSmth()  {

my_mc.drawRect(х, y, i, h, 0x0000FF, alfa);
i++;       
        if (i>100)
        {
                clearInterval(intId);
        }
}
intId = setInterval(doSmth, intId);


2 вопрос:
как можно добиться разной скорости изменения ширины клипов? т.е. чтобы раздиваглись допустим по формуле f(x) (не советуйте i подстваить вместо х - не то получится)

т.е. надо чтобы мувики изменялсиь с раздичной скоростью (эксперементально в СетИнтервал не подойдет, надо, чтобы по строгой формуле проходило изменение...) Есть ли решение?

etc 01.06.2007 02:14

А где alfa?

Kikasso 01.06.2007 02:54

i это ширина прямоугольника? Похоже вы ее в альфу загоняете.

RealShat 01.06.2007 15:33

А где собственно "var alfa" и её значение?

_Nagash_ 02.06.2007 02:04

занчения задаютсья:

Код:

my_mc.drawRect(х, y, i, h, 0x0000FF, 40);
i Не причем тут, прсто для общности показал.
алфа стаил 0 - все равно до 100 доходитт... то же происходит если это постваить в онЕнтерФрейм - увеличивается до 100, хоть стоит, к примеру, 40.

алфа тоже для наглядности показал, она задается вручную и не изменяется борльше нигде, но при компиляци... ???

вот полный код:

только убрал из прототипа установление прозрачности (алфа) и устанавливаю ее для созданного мувиклипа.

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

в чем проблема?

Код:

// 1
MovieClip.prototype.drawRect = function(x, y, width, height, color)

{
        this.beginFill(color);
        this.moveTo(x, y);
        this.lineTo(x+width, y);
        this.lineTo(x+width, y+height);
        this.lineTo(x, y+height);
        this.lineTo(x, y);
        this.endFill();
};

//



this.createEmptyMovieClip("pOblast_mc", this.getNextHighestDepth());
this.createEmptyMovieClip("nOblast_mc", this.getNextHighestDepth());

var i:Number=1;
var intId = 10;

pOblast_mc._alpha=20;
nOblast_mc._alpha=20;

function modify_pn_width()  //изменение ширины замыкающего слоя
{
tmp=x+w/2;


pOblast_mc.drawRect(tmp, y, 0-i, h, 0x0000FF);
nOblast_mc.drawRect(tmp, y, 0+i, h, 0xFF0000);

i++;       
        if (i>100)
        {
                clearInterval(intId);
        }
}
intId = setInterval(modify_pn_width, intId);

и возникает сразу 2-ой вопрос... как можно добиться разной скорости изменения ширины клипов? т.е. чтобы раздиваглись допустим по формуле f(x) (не советуйте i подстваить - не то получиттся )

Спасибо.

З.Ы.

при изменения прозрачности на меньший уровень, 10, к приеру, "деффек" становиться отчетливо заметен...

Возможно проблема из аз использования СетИнтервал?

как по другому можно влиять на скорость воспроизведения мувика (в данном случае увеличения его ширины...?

etc 02.06.2007 14:35

_Nagash_, для того, чтобы что-то добавить, нужно ОТРЕДАКТИРОВАТЬ свой пост, а не создавать новый!

з.Ы. А очищать после нарисованного ничего не надо разве?

_Nagash_ 02.06.2007 14:48

в смысле очищать? нужно чтобы мувиг растягивался (по ширине) от Х до Х1., а не перемещался...

З.Ы. ок, приму к сведению

etc 02.06.2007 15:02

Надо добавить this.clear() перед beginFill. И где w объявлен?

_Nagash_ 03.06.2007 18:02

Цитата:

Сообщение от __etc
Надо добавить this.clear() перед beginFill. И где w объявлен?

спасибо, теперь все работает :)


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

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