Просмотр полной версии : как обращаться к объекту, чье имя инстанции задано цифрой?
angeldark
25.06.2008, 15:28
как обращаться к объекту, чье имя инстанции задано цифрой? Только не говорите, что перезадать его в буквенном виде. у меня к этим номерам идет привязка кода
Имя не может начинаться с цифры.
angeldark
25.06.2008, 15:50
а вот тут товарищ предложил использовать цифры вместо имени http://www.flasher.ru/forum/showthread.php?p=747344#post747344 и все работает.
Molecula
25.06.2008, 15:53
Столкнулся как-то с таким проектом.
8-ка ИДЕ ещё нормально относится к этому, а вот 9-ка уже матюгается на такое обзывание мувиков.
Не надо цифрой их обзывать.
angeldark
25.06.2008, 16:19
нашел как относительно просто исправить мой код с учетом вышесказанного: добавляем к инстанс неймам 1 букву спереди, а затем в коде с помощью substr вырезать цифры, к которым идет привязка кода. Всем спасибо.
Alex_beginner
25.06.2008, 16:45
Здравствуйте angeldark!
this.createEmptyMovieClip("1",10);
trace(this[1]); // выведет _level0.1
Почему так, если уж сильно хочется, не обращаться.
angeldark
25.06.2008, 17:13
черт, что-то я все равно как-то туплю почему вот такой код не работает?
for (i = 0; i < 87; i++) {
var j:String = "o" + i;
this._parent.j.gotoAndStop(1);
}
this.gotoAndStop(2);
все мувиклипы называются o0, o1, ..., o86 При переходе ко второму кадру они "выделяются". По идее этот код должен при нажатии на Х-ый мувиклип с номером оХ все остальные мувиклипы перевести в невыделенное состояние, однако этого не происходит. При этом если явно прописать в коде вместо j некий oY, то с этого oY выделение снимается. В чем мой баг?
crazyone
25.06.2008, 17:29
for (i = 0; i < 87; i++) {
var j:String = "o" + i;
this._parent[j].gotoAndStop(1);
}
this.gotoAndStop(2);
починил
Alex_beginner
25.06.2008, 17:30
angeldark!
this._parent.j.gotoAndStop(1);
некорректна.
Надо так:
this._parent[j].gotoAndStop(1)
Если сильно хочется цифр, создавайте мувы так:
for (var i:Number = 0; i<87;i++)
{
this.createEmptyMovieClip(i,this.getNextHighestDepth())
}
И обращение к ним через [] -
this[i]
Хочу предупредить, что в Вашем цикле последнее имя мува будет 86, а не 87.
angeldark
25.06.2008, 17:38
crazyone, Alex_beginner, спасибо
А может быть ответите на вопрос, который я задавал в другой теме, но там на него никто не ответил:
Подскажите пожалуйста где почитать о том, как приаттачить мувик в определенном месте без привязки к какому-нибудь объекту? А то уже нет времени искать по форуму.
crazyone
25.06.2008, 17:55
Нет, не ответим. Сформулируйте его корректнее, телепаты в отпуске.
Alex_beginner
25.06.2008, 18:33
angeldark!
Давайте разберемся. Если Вы хотите использовать метод attachMovie класса MovieClip, то вы обязаны сделать привязку к какому-либо объекту. Например, _root. Иного пути нет и вряд ли будет. Если же Вы хотите соорудить что-либо иное, плиз, "разжуйте" и выложите здесь подробно.
Жень Шень
25.06.2008, 20:27
как приаттачить мувик в определенном месте
Вот это определенное место ни что иное, как другой клип или _root (клип, но особенный). Это уже в AS3 появился конструктор клипов...
angeldark
26.06.2008, 20:04
Ну просто в случае привязки к объекту мувик появляется как бы внутри его, хоть и поверх. Нельзя ли как-то его вывести по координатам на рабочем поле без наличия того объекта, в котором он "появляется"?
Жень Шень
27.06.2008, 10:40
... Нельзя ли как-то его вывести по координатам на рабочем поле без наличия того объекта, в котором он "появляется"?
Привет!
Можно, если не предпологается изменения масштаба. Просто клип контейнер загоняется в 0,0. А присоедененный устанавливается по нужным координатам.
Если нужно масштабирование, то в тогда надо применять globalToLocal(), localToGlobal(). Но об этом в ХЭЛПе
Alex_beginner
27.06.2008, 13:17
Здравствуйте angeldark!
Нельзя ли как-то его вывести по координатам на рабочем поле без наличия того объекта, в котором он "появляется"?
А что такое рабочее поле?! Это безусловно тоже мувиклип _root, называемый главной временной шкалой. И так или иначе Вы будете привязываться к нему.
Да и уж не так страшно аттачить мувы к какому либо объекту - в функциональности Вы не потеряете ничего.:)
angeldark
28.06.2008, 03:51
Да и уж не так страшно аттачить мувы к какому либо объекту - в функциональности Вы не потеряете ничего.:)
прсто если нужно чтобы клип появлялся на пустом месте, то привязка к объекту здесь - минус) Ладно, попробую приаттачить к руту. только я так и не понял - как изменить координаты куда приаттачивается ролик? Пробовал написать как в хелпе после глубины размещения (насколько я понял) {_x.100,_y.100}, мувик все равно появляется в 0,0 координатах объекта, к которому выполняется привязка. Может я все же где-то туплю?
Alex_beginner
28.06.2008, 17:17
прсто если нужно чтобы клип появлялся на пустом месте, то привязка к объекту здесь - минус)
Все же я Вас не понимаю. Зачем нужно создавать клип на пустом месте?
только я так и не понял - как изменить координаты куда приаттачивается ролик?
Порядок тут такой:
1. Атачите клип (скажем задавая ему имя myClip) к _root;
2. Здаете для myClip координаты левого верхнего его угла используя синтаксис:
myClip._x = 100;
myClip._y = 100;
И все. Удачи.
angeldark, не {_x.100,_y.100}, а правильно {_x:100,_y:100}
angeldark
30.06.2008, 22:18
angeldark, не {_x.100,_y.100}, а правильно {_x:100,_y:100}
это я здесь неправильно написал, а в проге так как написали вы, и ей на это по барабану
Зачем нужно создавать клип на пустом месте?
ну у вас же при открытии нового окна оно же появляется не на месте курсора или не на месте какого бы то ни было другого окна или иконки, а как вы изволили выразиться "на пустом месте"
1. Атачите клип (скажем задавая ему имя myClip) к _root;
2. Здаете для myClip координаты левого верхнего его угла используя синтаксис:
myClip._x = 100;
myClip._y = 100;
так работатет, а вот в одну строчку нет запроса? т.е. не 3 команды (поместить, изменить положение по х, затем по y), а в одну?
Alex_beginner
30.06.2008, 22:39
angeldark!
ну у вас же при открытии нового окна оно же появляется не на месте курсора или не на месте какого бы то ни было другого окна или иконки, а как вы изволили выразиться "на пустом месте"
Ну, во первых выражение "на пустом месте" применили впервые Вы:
прсто если нужно чтобы клип появлялся на пустом месте, то привязка к объекту здесь - минус)
Поэтому я пользуюсь Вашей терминологией.
Во-вторых, повторюсь. Невозможно создавать мувиклипы на "пустом месте", так же как не может быть из ничего всего. Есть корневой "мувиклип" - _root на нем все и строиться в Флеше. Не надо относиться к мувиклипам обязательно как к видимым объектам. Мувиклипы это условность, выражающая кусочек кода. Однако, мувиклипы нельзя смешивать с другими объектами Флеша - они совершенно обособленные структуры.
angeldark
01.07.2008, 01:35
Невозможно создавать мувиклипы на "пустом месте", так же как не может быть из ничего всего. Есть корневой "мувиклип" - _root на нем все и строиться в Флеше. Не надо относиться к мувиклипам обязательно как к видимым объектам. Мувиклипы это условность, выражающая кусочек кода. Однако, мувиклипы нельзя смешивать с другими объектами Флеша - они совершенно обособленные структуры.
ну я имею в виду под объектами все мувиклипы кроме рута, который в моем понимании - рабочее поле. Короче с этим уже разобрались. Может тогда разберемся с тем как одной командой приаттачить мувик в определенном месте? т.е. по определенным координатам, без создания мувиклипа (не рута!) в этом определенном месте
любой_клип.attachMovie ("id", "имя", глубина_в_любом_клипе, {_x:координата_x, _y:координата_y})
angeldark
01.07.2008, 02:33
любой_клип.attachMovie ("id", "имя", глубина_в_любом_клипе, {_x:координата_x, _y:координата_y})
ругаеццо:
**Ошибка** Сцена=Сцена 8, слой=Слой 1, кадр=2:Строка 1: '}' or ',' expected
_root.attachMovie("file", "bmp", this.getNextHighestDepth(), {_x:100_x,_y:100_y});
Общее количество ошибок ActionScript: 1 Сообщенные ошибки: 1
или может вы имели в виду под "координата_x" просто цифру? Тогда он это просто игнорирует, размещая объект в точке 0.0
1. В русском языке нет слова "ругаеццо", подобные лексические построения на этом форуме запрещены. Читайте правила.
2. координата_x - это число
3. Если вы пишите _root.attachMovie, то должны писать _root.getNextHighestDepth(), а не this, и наоборот. Иначе это рано или поздно привидет к ошибке.
4. Если объект размещается в точке 0.0, то проблема в другом месте, но ни как ни в данном строке кода. Покажите исходник.
crazyone
01.07.2008, 11:38
Надо так:
_root.attachMovie("file", "bmp", this.getNextHighestDepth(), {_x:100,_y:100});
Я даже не знаю, что бы могло вам помочь. Банальная программистская безграмотность на этом форуме не лечится. Попробуйте просто разобраться с основами сами.
angeldark
01.07.2008, 20:26
я понял в чем у меня был баг: вместо мувиклипа я аттачил кнопку, поэтому ее координаты и не задавались)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.