PDA

Просмотр полной версии : Как повесить мышиные события на символ мувика?


Violent_C
07.03.2006, 19:39
Дано: Один символ типа MovieClip в библиотеке. Один его instance на сцене. В первом кадре сцены этот instance размножен с помощью duplicateMovieClip 36 раз. Нужно прописать для каждого instance одинаковые мышиные события типа rollover, rollout, click и drag'n'drop.

Вопрос: Как сделать это в символе, чтобы не прописывать события для каждого инстанса?

Спасибо

KUZEN
07.03.2006, 19:52
Прописывай это в цикле когда размножаешь мувик

_root["mc"+i].onRollOver = function(){
trace("rollOver");
}

silin
07.03.2006, 20:20
более 'цивилизованный' вариант:
связываем символ в библиотеке с классом, в котором прописываем все, что должен знать/уметь мувик..
class MyClass extends MovieClip{
function onRollOver(){
trace(this+ ' over');
}
function onRollOut(){
trace(this+ ' out');
}
//и т.д.
}

Violent_C
07.03.2006, 23:43
Спасибо silin. Нравится вариант с собственным расширяющим классом.
Только как его связывать с символом в библиотеке?
И что конкретно делает trace?
К примеру как должен выглядеть код, если по RollOn мувик должен проиграть фреймы с 2го по 6й ?

silin
08.03.2006, 00:04
-(начиная с 7-ки) в linkage properties символа- поле AS2 class
-выводит в output аргумент, больше ничего..
-к примеру так:
class MyClass extends MovieClip{
function onRollOver(){
gotoAndPlay(2);
onEnterFrame=stopOn6;
}
function stopOn6(){
if(_currentframe==6){
stop();
onEnterFrame=null;
}
}
}

Violent_C
08.03.2006, 01:28
silin спасибо еще раз. Прошу извинить мою безграмотность (во флеше работаю всего 4й день), но у меня не получается прицепить класс к мувику.
Стоит 8й Flash.
В linkage символа мувика стоят галки Export for ActionScript и Export in first frame.
В строке AS2.0 class - MyClass.

Код с описанием класса - в файле cards.as. Файл находится в том же каталоге, что и cards.fla
Первой строчкой первого фрейма сцены import MyClass;

При компиляции выдает ошибку:
**Error** Symbol=Card_Club_mc, layer=Transform 3, frame=1:Line 1: The class or interface 'MyClass' could not be loaded.

Как правильно залинковать свой класс?

silin
08.03.2006, 01:37
имя файла с классом должно совпадать с именем класса (т.е. MyClass.as)
если файл лежит в том же каталоге, что и fla , то import MyClass; не нужен..

Король
08.03.2006, 02:00
или в субкаталоге - тогда обращаемся как к package