PDA

Просмотр полной версии : Два и более masked MC, управляемые AS


MegaBug
18.06.2002, 13:10
Посмотрел поиском...дофига всего про маски...но все-равно непонятно...
В МХ решил разобраться...
Есть слой mask, есть слой MASKED (под маской)...в слое MASKED управляемый MC (двигается, меняет размеры, прозрачность)
- все нормально работает...

Хочу добавить второй оъект на слой MASKED_1 и тоже им управлять...по идее два управляемых MC должны по-разному двигаться...(у них разные параметры трансформации)...
...нифига...двигаются ОДИНАКОВО...с пораметрами трансформации MC на слое MASKED_1...
...MASKED слои задавал как коммандой setmask...так и вручную...вообще по-разному пробовал - не получается...

...объясните в чем дело...

DeliMIter
18.06.2002, 22:50
Трейси, должно работать. Гляну - расскажу подробнее.

MegaBug
19.06.2002, 15:46
я завтра исходничек кину...хотя я думаю с такой фишкой не только я сталкивался...

у меня там примерно так...(могу наврать с синтексисом...)

...все в первом кадре...

masked.setmask(mask)
masked_1.setmask(mask)

MovieClip.prototype.transform = function (x, width, alpha) {
....
....
....
}

masked.onEnterFrame() {
this.transform (50,700,30);
}

masked_1.onEnterFrame() {
this.transform (100,300,80);
}

MegaBug
20.06.2002, 11:53
Вот, собственно исходник...чуть подправленный...чтото с одной маской вообще не получилось...

Для примера я закомментарил скрипт для движения второго МС(рамки)...чтобы было видно, что двигаться они должны по-разному...

Nataliek
20.06.2002, 12:35
Esli mozno savani file dlya Flash5 toze, yu menya ne MX ne Flash5 file ne otkrivaut !!! :rolleyes:

MegaBug
20.06.2002, 13:02
Исходник для MX

MegaBug
20.06.2002, 13:04
Исходник для Flash 5, но не рабочий...так как в MX подругому с соытиями...но код посмотреть можно...

DeliMIter
20.06.2002, 16:11
Короче слушайте все, и не говорите, что не слышали!

1. Видел несознательный возглас про пятерку, под Flash 5 есть ТОЛЬКО послоевые маски.

2. Для эмыкса существует следующее правило: одна маска - один маскируемый клип (причем ЭТО прописано в хелпе). Т.е. если нужно, чтобы под маской было два клипа, нужно создать контейнер, и через него управлять клипами, тогда все работает.

Вот и все. А шуму-то...

Nox Noctis
20.06.2002, 16:18
Оригинал написал(а) DeliMIter
Видел несознательный возглас про пятерку, под Flash 5 есть ТОЛЬКО послоевые маски
...я вам больше скажу - возглас этот вполне сознательный и звучал со стороны макромедии :)

http://www.macromedia.com/support/flash/ts/documents/mask_follow_guide.htm

MegaBug
20.06.2002, 16:57
Ну ты посмотри исходник....там две маски и два маскируемых клипа...

Mask
Masked

Mask1
Masked1

Контейнер - мувик, а в нем другие мувики, которыми управлять?

MegaBug
20.06.2002, 17:13
В пятерке я кинул только потому, что человек с МХ не мог открыть мой файл в MX сделаный и в MX сохраненный...

Кстати помоему можно вкладывать одни маски в другие

Mask
Masked
Masked1

Где Masked - маскируемый и одновременно маска для Masked1

Интересно попробовать программно, и еще - устанавливать программно маску можно, а снимать/менять на другую?

DMN
20.06.2002, 17:35
А маски-то тут при чем? Осторожнее надо быть с глобальными переменными. Про область видимости не забывать, все такое... Код ниже, вроде везде this. вставил, но проверьте там...


MovieClip.prototype.fade = function(max_fade,min_fade,max_by,min_by) {
this.fade_index = this._alpha;
if (this.fade_index >= max_fade) this.fade_by = -1*max_by;
if (this.fade_index <= min_fade) this.fade_by = min_by;
this.fader += this.fade_by;
this._alpha = this.fader;
}
MovieClip.prototype.movie = function(max_x,min_x,max_by,min_by) {
this.movie_index = this._x;
if (this.movie_index >= max_x) this.movie_by = -1*max_by;
if (this.movie_index < min_x) this.movie_by = min_by;
this.movier += this.movie_by;
this._x = this.movier;
}
MovieClip.prototype.MCwidth = function(max_width,min_width,max_by,min_by) {
this.width_index = this._width;
if (this.width_index >= max_width) this.width_by = -1*max_by;
if (this.width_index < min_width) this.width_by = min_by;
this.widther += this.width_by;
this._width = this.widther;
}

MegaBug
20.06.2002, 18:13
Спасибо, действительно....по-разному пробовал - в итоге забыл поменять все переменные...