Форум 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=90902)

Ksюta 20.01.2007 14:20

setMask. Помогите найти ошибку...
 
Вложений: 1
Привет! Подскажите плз... в исходнике вариант маски из муви-клипа, скрипт вроде правильный но наверное что-то упустила. Почему не маскирует?
flash 7-ка

Kikasso 20.01.2007 15:07

наоборот,
Код:

mm.setMask(maska);
и поосторожнее с eval(), будь проще:
Код:

clips[i] = objct;
и чего ты хочешь добиться?
А, понятно.
Замени код на этот:
Код:

mm = this.createEmptyMovieClip("mymask", 10);
//maska.setMask(mm);
mm.setMask(maska);
var i:Number = 0;
max = 20;
clips = new Array();
function myScript():Void {
        for (var i = 0; i<max; i++) {
                clips.push(mm.attachMovie("c", "circ"+i, i));
        }
        _root.onEnterFrame = function() {
                clips[0]._x = _xmouse;
                clips[0]._y = _ymouse;
                for (var i = 1; i< clips.length; i++) {
                        clips[i].xdistance = (clips[i-1]._x-clips[i]._x)/2;
                        clips[i].ydistance = (clips[i-1]._y-clips[i]._y)/2;
                        clips[i]._x += clips[i].xdistance;
                        clips[i]._y += clips[i].ydistance;
                }
        };
}
myScript();


Kikasso 20.01.2007 15:13

или вообще на этот:
Код:

var mm:MovieClip = this.createEmptyMovieClip("mymask", 10);
//maska.setMask(mm);
mm.setMask(maska);
var i:Number = 0;
max = 20;
clips = new Array();

for (var i = 0; i<max; i++) {
                clips.push(mm.attachMovie("c", "circ"+i, i));
}

onEnterFrame = function() {
        clips[0]._x = _xmouse;
        clips[0]._y = _ymouse;
        for (var i = 1; i< clips.length; i++) {
                clips[i].xdistance = (clips[i-1]._x-clips[i]._x)/2;
                clips[i].ydistance = (clips[i-1]._y-clips[i]._y)/2;
                clips[i]._x += clips[i].xdistance;
                clips[i]._y += clips[i].ydistance;
        }
};

Но если у тебя 7-ка там вроде бы строгий синтаксис не при делах?
Если не прокатит, все проверки
Цитата:

:MovieClip
долой

Ksюta 20.01.2007 15:17

Kikasso, спасибо за советы)
Но вот с кодом, получатся что обьект теперь сам видно, но он все равно не маскирует зеленый мувик "maska"... то есть должно быть, чтобы эти кружочки стали зелеными... (это просто пример а на самом деле потом это будет фото-картинка)

Ksюta 20.01.2007 15:19

СТОП!))) поняла - нужно именно так:
Код:

maska.setMask(mm);
тогда всё как надо.... урра)))
а с моим прежним кодом так не работало почему-то. Щас буду разбираться.
Спасибо!!!

Kikasso 20.01.2007 15:43

в циклах for можно убрать var перед i, поскольку мы i ранее объявили.
почему не работало, не понимаю. у тебя onEnterFrame сажался на последний кружочек, может в этом дело.

дело в eval. Вот так уже работает:
Код:

var objct:MovieClip = mm.attachMovie("c", "circ"+i, i);
clips[i] = objct;



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

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