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

Romario 30.06.2011 18:52

как сослаться на динамически созданный дубликат
 
создаю динамически серию дубликатов

duplicateMovieClip(clip_mc, "clip"+i , 1);
как мне правильно сослаться на такой клип только через i
"clip"+i._x=10 выдает ошибку
если
z="clip"+i
z._x=10(не работает т.к строка а нужен мувиклип)
может я что то не так делаю подскажите пожалуйста

dark256 30.06.2011 20:16

Код AS1/AS2:

this["clip"+i"]


Romario 30.06.2011 23:17

3 знака "
не работает в данной ситуации this ссылка на основной клип с которого лепятся дупликаты привожу весь код чтобы все встало на свои места
Код AS1/AS2:

var i = 1;
 
var mouseListener:Object = new Object();
mouseListener.onMouseDown = function() {
        _root.pricel.gotoAndPlay(2);
 
        x = pricel._x;
        y = pricel._y;
        trace(x);
        trace(y);
        i++;
        trace(i);
        duplicateMovieClip(hole, "hole"+i, 1);
        this["hole"+ i ]._x = x;
        this["hole"+ i ]._y = y;
};
Mouse.addListener(mouseListener);

Добавлено через 2 часа 36 минут
не работает вот это
Код AS1/AS2:

          this["hole"+ i ]._x = x;
        this["hole"+ i ]._y = y;


dark256 01.07.2011 11:30

Ндаааааа........................ ужжжж................
Если вы не уверены где как и куда создался ваш клип дупликат и т.п., делайте так:

Код AS1/AS2:

var WTF = duplicateMovieClip(hole, "hole"+i, 1);
trace( WTF )

Вам станет сразу ясно где клип создАлся и создАлся ли вообще.

Далее чтобы к к клипу обратится, пишете весь префикс ИМЕНИ клипа, и потом уже ["hole"+ i ]

Также нелишним будет написасть просто trace( hole ), чтобы убедиться, что оттуда откуда вы его дуплицируете, клип вобоще "виден"

Romario 01.07.2011 16:57

функция duplicateMovieClip не возвращяет ничего поэтому
Код AS1/AS2:

var WTF = duplicateMovieClip(hole, "hole"+i, 1);
trace( WTF )

не имеет смысла

Добавлено через 16 минут
Код AS1/AS2:

_level1["hole"+i]._x = x;
        _level1["hole"+i]._y = y;

так тоже не работает

DaFive 01.07.2011 17:16

Второй АС - аааааад!
Код AS1/AS2:

var i = 1;
 
var mouseListener:Object = new Object();
mouseListener.onMouseDown = function() {
 
 
        duplicateMovieClip(_root.test, "test"+i, _root.getNextHighestDepth());
        _root["test"+ i ]._x = Math.random()* 500;
        _root["test"+ i ]._y = Math.random()* 500;
        i++;
};
Mouse.addListener(mouseListener);

На глубину на нормальную надо вешать. А то они все на 1 глубине.

Romario 01.07.2011 17:25

как раз тока разобрался тока без _root.getNextHighestDepth()
Код AS1/AS2:

var i = 1;
var mouseListener:Object = new Object();
mouseListener.onMouseDown = function() {
        _root.pricel.gotoAndPlay(2);
        x = pricel._x;
        y = pricel._y;
        trace(x);
        trace(y);
        i++;
        trace(i);
            duplicateMovieClip(hole, "hole"+i , 0+i);
        trace (hole)
        trace(_level1["hole"+i])
        _level0["hole"+i]._x = x;
        _level0["hole"+i]._y = y;
};
Mouse.addListener(mouseListener);

всем огромное спасибо за то что помогли разобраться

dark256 01.07.2011 19:48

не за что


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

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