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

dedsky 19.07.2005 10:54

не воспринимаются имена клипов
 
:( Вот код:
for(var i=1; i<=7; i++) {
this["mc"+i]["cl1"+i].onPress=function() {
this["mc"+i].startDrag(false);
};
this["mc"+i]["cl1"+i].onRelease=function() {
stopDrag();
};
}
Почему-то не видит имена в таком виде. Что я не так делаю?
Если не в лом, объясните.

D-MAN 19.07.2005 11:17

Не понятно без абсолютных путей, что там тебе тащить надо. Насколько понял, this["mc"+i], тот же что и фигурирует в заголовке функции.
Тада дело в том, что внутри функции this == объект, к которому эта функция привязана. Поэтому надо писать:
this._parent.startDrag(false);

К тому же i к моменту выполнения функции 100 раз поменяется. Если хочешь использовать параметр от имени - храни его внутри объекта и вызывай внутри функции через this.

Смольный (Smolniy) 19.07.2005 13:15

интересует дерево объектов фильма и на чем твой код написан.

dedsky 19.07.2005 14:03

Слушай, Человек-здание, чего тут непонятного:
на _root (хотя фильм потом надо будет вставить в другой) семь клипов ["mc"+i], внутри каждого "cl1".
За ["cl1"+i] таскаю ["mc"+i].
А писать пытаюсь на AS2 (по-моему ниже учить уже нет смысла),
хотя это не имеет отношения к вопросу.
Извини за обращение.
To: D-MAN спасибо, сегодня дома попробую (хотя на счет i не согласен).

KUZEN 19.07.2005 14:06

на самом деле нихрена не понятно (понятно только тебе и то несовсем) ... давай исходник

swfus 19.07.2005 14:14

Вообще-то надо дебагерить нормально.
Хочешь узнать что у тебя не работает?
вставь куда только можно trace - на все объекты, и посмотри что не так.
Если не разобрался, то это тебе хотя бы поможет грамотнее сформулировать вопрос.

swfus 19.07.2005 14:16

з.ы. а смольному не хами, он у нас один, а таких как ты много.

Бармалей 19.07.2005 14:20

Цитата:

Сообщение от dedsky
Слушай, Человек-здание, чего тут непонятного


А писать пытаюсь на AS2

:D :D :D

Dracula_DIS 19.07.2005 14:26

имена не видятся потому что оператором this ты обращяешся не к своему мувику а к функции собержащей этот оператор, так то вот

Dracula_DIS 19.07.2005 14:27

попробуй через _root. или _parent

dedsky 19.07.2005 14:51

To: KUZEN, исходник не могу сейчас повесить (всё дома), да и чего непонятного: на главной временной диаграме фильма (не _root) семь клипов (от mc1 до mc7), в каждом из них по одному клипу (cl11 ... cl17) (на самом деле там ещё клипы, но к вопросу отношения не имеют-точно). Так вот, за встроенный клип mc1.cl11 надо таскать родительский клип mc1.
To: swfus, пробовал внутри функции Drag trace(this["mc"+i]._x), выводит undefined. Весь трабл в именах клипов (родительских и вложенных).
Если у человека в имени написано "Человек и пароход", то почему нельзя к нему так же обратиться.
To: Dracula_DIS, на счет this я понял, а вот _root не надо пользовать (фильм захочется куда нибудь вставить).
Спасибо народ, сегодня вечером опробую. Завтра расскажу.

KUZEN 19.07.2005 15:47

может конечно всё и понятно но я уже запутался (((

MIX-er 19.07.2005 15:56

не понимаю....
человечек катит бочку и возмущается что тут непонятного...
хотя хелп нужен ему..))
дружыще напиши точны и главное понятный вопрос...
я могу те дать код которого ты ни хрена не поймёшь но он будет работать и не потому что ты ни черта не знаешь а я крутан а потому что не ты его делал...
так то вот...

Dracula_DIS 19.07.2005 20:36

еще раз говорю, команда this обращается к содержащей ее function поэтому уберай FUNCTION (почетай HELP там все написано, можешдаже русский почитать благо умные люди уже перевели)

Смольный (Smolniy) 19.07.2005 23:19

Попробуй так:

Код:

for(var i=1; i<=7; i++) {
        this["mc"+i]["cl1"+i].onPress=function() {
                this._parent.startDrag(false);
        };
        this["mc"+i]["cl1"+i].onRelease=function() {
                stopDrag();
        };
}

Хотя зачем ты внутренние клипы обзываешь ["cl1"+i] мне не совсем понятно - конкретно, непонятно зачем там i, если эти клипы и так запакованы в уникальные ["mc"+i]
Надеюсь, что код у тебя написан в руте, иначе в пути
this["mc"+i]["cl1"+i].onPress=function() {
надо писать
_root["mc"+i]["cl1"+i].onPress=function() {
но это, думаю, и так ясно.

D-MAN 20.07.2005 01:53

ну торкнуло чувака так клипы назвать... :d

dedsky 20.07.2005 13:26

Вложений: 1
Народ, пардон за опаздание. Спасибо D-MANу, всё сработало по его схеме (кроме i). В прикреплённом файле (.txt) код для кадра. А делов-то на одну строчку. :)

dedsky 20.07.2005 14:29

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

Сообщение от Смольный (Smolniy)
Хотя зачем ты внутренние клипы обзываешь ["cl1"+i] мне не совсем понятно - конкретно, непонятно зачем там i, если эти клипы и так запакованы в уникальные ["mc"+i]
Надеюсь, что код у тебя написан в руте, иначе в пути
this["mc"+i]["cl1"+i].onPress=function() {
надо писать
_root["mc"+i]["cl1"+i].onPress=function() {
но это, думаю, и так ясно.

Просто это кусок моего проектика (не всё лишнее выкинул).
На счет _root я уже писал выше.
Да, кому интересно:

D-MAN 21.07.2005 05:44

Цитата:

Сообщение от dedsky
(кроме i)

Не тупи!

Код:

for(var i=1; i<=7; i++) {
  this["mc"+i]["cl1"+i].num = i;
  this["mc"+i]["cl1"+i].onPress=function() {
      trace(i);
      trace(this.num);
  }
}

Подумай над этим...


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

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