Форум 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)
-   -   Проблема с duplicateMovieClip (http://www.flasher.ru/forum/showthread.php?t=135205)

rem345690 18.01.2010 17:25

Проблема с duplicateMovieClip
 
Добрый день. прошу прощения за некорректное название темы (незнал как правельно обозвать)

вот в чём пролема: При дублировании сдублированый мувик неоткликается на дейтвия. Непонимаю в чем ошибка. (



Код:

// var r:Number = 1;

mc.onPress = function():Void  {
        r++;
        duplicateMovieClip(_root.mc, ["mc"+r], r);
        trace(["mc"+r]);
        _root["mc"+r].startDrag();
};

mc.onReleaseOutside = function():Void  {
        _root["mc"+r].stopDrag();
       
};

_root["mc"+r].onPress = function() {
       
        trace("press");
        this.startDrag();

};

_root["mc"+r].onRelease = function():Void  {

        this.stopDrag();

};


udaaff 18.01.2010 17:31

А зачем вы массив ["mc"+r] вместо имени передаете?

rem345690 18.01.2010 17:34

mc - это исходный мувик который множется при нажатии. Новому мувику назначается новое имя ["mc"+r]. И новый мувик в свою очередь тоже должен дейтвовать. А как?

udaaff 18.01.2010 17:53

До конца не понятно, что именно нужно. Возможно, так...
Код AS1/AS2:

var r:Number = 1;
 
mc.onPress = mc_onPress;
 
function mc_onPress():Void 
{
        var duplicate:MovieClip = this.duplicateMovieClip("mc" + r, r++);
        duplicate.onPress = duplicate_onPress;
        duplicate.onMouseUp = duplicate_onMouseUp;
        duplicate.startDrag();
};
 
function duplicate_onPress():Void
{
        this.startDrag();
}
 
function duplicate_onMouseUp():Void 
{
        this.stopDrag();
}


rem345690 18.01.2010 17:55

ВСЁ ИМЕННО ТАК ! )) спасибо

etc 18.01.2010 17:56

udaaff, тут делегейта не хватает)

udaaff 18.01.2010 21:47

Код AS1/AS2:

import mx.utils.Delegate;
 
var r:Number = 1;
 
mc.onPress = Delegate.create(this, mc_onPress);
 
function mc_onPress():Void 
{
        var duplicate:MovieClip = mc.duplicateMovieClip("mc" + r, r++);
        duplicate.onPress = Delegate.create(duplicate, duplicate_onPress);
        duplicate.onMouseUp = Delegate.create(duplicate, duplicate_onMouseUp);
        duplicate.startDrag();
};
 
function duplicate_onPress():Void
{
        this.startDrag();
}
 
function duplicate_onMouseUp():Void 
{
        this.stopDrag();
}

Сделал с делегатом, только что-то мне до конца не понятно, какие тут области видимости лучше указывать.

etc 18.01.2010 22:43

А, да, тут делегат необязателен, да :)
Это ж AS1.

udaaff 18.01.2010 22:55

Я так и подумал :) Delegate кашу не испортишь все равно :)

Hauts 18.01.2010 23:38

Повеселили :)


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

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