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

Aziz Zaynutdinoff 20.02.2006 15:47

чего-то не маскирует setMask()...
 
Суть проблемы такова:
Имеем мувик, созданный при помощи createEmptyMovieClip() [назовём его mask_mc], в котором рисуем прямоугольник/квадрат... затем создаём ещё один мувик [условно clip_mc], в который собственно говоря подгружаем SWF... Затем clip_mc.setMask(mask_mc)... и что ж? А ничего. Видим чёрный прямогульник/квадрат, а под ним загруженный мувик и никакого маскирования. Поднял много доки, вдоль и поперёк просмотрел сей форум... похожих ситуаций вроде как не застал.

Usnul 20.02.2006 16:48

попробуй так
clip_mc.onEnterFrame = function(){
if(this.getBytesTotal()===this.getBytesLoaded()){
clip_mc.setMask(mask_mc);
}
}

хотя незнаю если честно =\
у меня такие же траблы были.. давно, если не решишь то пиши, я отрою старый проект - погляжу.

Aziz Zaynutdinoff 20.02.2006 17:17

не работает.... к сожалению :(

meiciuc 20.02.2006 17:21

форма записи верная clip_mc.setMask(mask_mc);

что значит ( в который собственно говоря подгружаем SWF) ? На момент команды setMask клип уже виден, если он подгружается? Проверяется его наличие? Если клип окончательно загрузится только после объявления маски, то и маска, соответственно, работать не будет.

если проверяется, значит проблема только в именах переменных.

Aziz Zaynutdinoff 20.02.2006 17:57

Цитата:

Сообщение от meiciuc
форма записи верная clip_mc.setMask(mask_mc);

что значит ( в который собственно говоря подгружаем SWF) ? На момент команды setMask клип уже виден, если он подгружается? Проверяется его наличие? Если клип окончательно загрузится только после объявления маски, то и маска, соответственно, работать не будет.

если проверяется, значит проблема только в именах переменных.

ну как что значит... значит, что создаём пустой мувик
Код:

this.createEmptyMoviClip("mask_mc", this.getNextHighestDepth());
with(mask_mc){
beginFill(0x000000);
lineTo(0,20);
lineTo(20,20);
lineTo(20,0);
lineTo(0,0);
endFill();
}

this.createEmptyMovieClip("clip_mc", this.getNextHighestDepth());
clip_mc.loadMovie(this._urlToUpload);
clip_mc.setMask(mask_mc);

вот собственно квадрат по идее должен замаскировать подгруженный SWF-файл. Однако в итоге я вижу квадрат, под которым подгруженный SWF, причём выходящий за пределы этого квадрата, т.е. маскинг как таковой не выходит

meiciuc 20.02.2006 18:53

смущает то, что маска не может быть в твоем случае под загруженным клипом, потому, что маску ты создал первой, значит она должна отобразиться как минимум под загружаемым клипом. Ты же сам его создал после маски, взяв следующую наибольшую глубину - верно?
Код:

this.createEmptyMoviClip("mask_mc", this.getNextHighestDepth());
фываывафы
this.createEmptyMovieClip("clip_mc", this.getNextHighestDepth());

вот практически твой код, только без линка и работает.

Код:

var mask:MovieClip = _root.createEmptyMovieClip("mask_mc", this.getNextHighestDepth());

mask.beginFill(0x000000);
mask.lineTo(0,50);
mask.lineTo(50,50);
mask.lineTo(50,0);
mask.lineTo(0,0);
mask.endFill();


var clip:MovieClip = createEmptyMovieClip("clip_mc", this.getNextHighestDepth());
clip.setMask(mask);
clip.attachMovie("asd","asd",0);

я не знаю, в какой последовательности и из каких мест были взяты куски из кода, но проблема все-таки в именах(в видимости клипов)

Aziz Zaynutdinoff 20.02.2006 19:24

Так, видите ли, сударь, в чём дело:
Если использовать метод attachMovie, то всё как по маслу!, однако, если мувик подгружать сторонний, я имею в виду тот, оторого не было в библиотеке, то получается, что метод setMask() становиться просто-напросто условностью, ибо не работает... Может я и ошибаюсь, но к сожалению не вижу где именно!

Antares 20.02.2006 19:25

Клади маску после инициализации 1го кадра загруженного. Подсказка для совсем ленивых: в обработчике onLoadInit ближайшего MovieClipLoader и используй setMask.

KidsKilla 20.02.2006 19:27

охё...

1) Глубина клипа по сравнению с маской не важна.
2) сперва определи момент когда у тя мувик загрузится, а потом уж маскируй.

meiciuc 20.02.2006 19:41

Код:

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


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

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