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

mixery 06.06.2008 23:45

Код:

_root.attachMovie("MC", "name"+i, i, {_x:_root._xmouse, _y:_root._ymouse})
i++;

Вот так уже. И
Код:

_root.name0.onRollOver = function(){
        trace("Hellow, world!");}

не работает (

alexcon314 07.06.2008 00:21

Alex_beginner, исправьте свой пост и оформите код тэгами [code][/code]. Вам уже делали замечание по этому поводу.

tikhop 07.06.2008 00:21

Код:

var i:Number=0
inteval=setInterval(attachMC, 500)
function attachMC(){
        var new_mc=_root.attachMovie("MC", "name"+i, i, {_x:_root._xmouse, _y:_root._ymouse})
        new_mc.onRelease=function(){
                trace(this)
        }
        i++
        if(i>=10)clearInterval(inteval)
}


Alex_beginner 07.06.2008 11:10

Вложений: 1
alexcon314! Прошу прощения за неоформленный код! Исправил.
А что еще я должен исправить??

mixery! Чтобы разобраться давайте выясним основные моменты.
1. Ваш код:
Цитата:

Код:

_root.attachMovie("MC", "name"+i, i, {_x:_root._xmouse, _y:_root._ymouse})
i++;


выполняется в цикле, где счетчик цикла в начале выполнения имеет значение 0???
2. MC импортирован в библиотеку и ему присвоен индентификатор импорта - MC.?
3. Код
Цитата:

Код:

_root.name0.onRollOver = function(){
        trace("Hellow, world!");}


расположен на _root.?
4. Зачем это:
Цитата:

Код:

{_x:_root._xmouse, _y:_root._ymouse}

Пример использования onRollOver прилагается. Разберитесь почему работает.

mixery 07.06.2008 17:37

Итак, начнем по порядку.
1. Мой код на настоящий момент:
Код:

var i:Number = 0;
img.onPress = function() {
        _root.attachMovie("MC", "name" + i, i, {_x:_xmouse, _y:_ymouse});
        i++;
};
_root.name0.onRollOver = function(){//Это не работает =(
        trace("Hellow, world!");}

_root["dot"+i].onRollOver = function(){//Это тоже.
        trace("Hellow, world!");

2. Да, импортирован, идентификатор "MC".
3. Да
4. Чтобы клип появлялся в месте клика мыши.

По поводу onRollOver, я знаю как он работает, но на присоединенном клипе с именем вида name0, name1 и т.д. не хочет работать =(

chingachgoog 07.06.2008 17:42

А не быстрее воспользоваться поиском по форуму? Или вы считаете, что это очень оригинальный вопрос?

http://flasher.ru/forum/showthread.php?t=96204

Alex_beginner 07.06.2008 17:48

Вложений: 1
Цитата:

По поводу onRollOver, я знаю как он работает, но на присоединенном клипе с именем вида name0, name1 и т.д. не хочет работать =(
Извините, но этого не может быть.

Давайте будем разбираться.

1. Попробуйте вынести код
Код:

_root.attachMovie("MC", "name" + i, i, {_x:_xmouse, _y:_ymouse});
из обработчика.
2. Возможно у Вас есть клип с _alpha = 0 и большой глубиной, который закрывает собою создаваемые клипы. Правда это должен быть динамический клип, поскольку клипы, создаваемые в период конструирования расплагаются на отрицательных глубинах.
3. Предложение:давайте я напишу код с динамическим созданием клипов с подписанными обработчиками события onRollOver.

mixery 07.06.2008 20:12

И правда, если вынести из обработчика onPress то все работает! Почему!? Но мне нужно именно чтобы при нажатии там появлялся клип... Сейчас через листенеры сделаю, может так работать будет?

Vektor 07.06.2008 21:46

Код:

var i:Number = 0;
var mcName:MovieClip;
this.onMouseDown = function() {
        if (img.hitTest(_xmouse, _ymouse)) {
                mcName = this.attachMovie("MC", "name"+i, i, {_x:_xmouse, _y:_ymouse});
                i++;
        }
        this.mcName.onRollOver = function() {//Это работает
                trace("Hellow, world!");
        };
};

И так можно.
Код:

var i:Number = 0;
var mcName:MovieClip;
img.onPress = function() {
        mcName = attachMovie("MC", "name"+i, i, {_x:_xmouse, _y:_ymouse});
        i++;
        mcName.onRollOver = function() {
                trace("Hellow, world!");
        };
        //Если, нужно удалять мувик.
        mcName.onRollOut = function() {
                mcName.removeMovieClip();
        };
};


mixery 08.06.2008 15:50

Спасибо большое! Очень помог!


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

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