![]() |
Как правильно обращаться к пронумерованным копиям клипа?
Привет! В общем такая проблема: есть несколько клипов, которые аттачатся из библиотеки. Нужно чтобы имена шли по порядку, name0, name1, name2 и т.д. Это сделать смог:
Код:
mClip.attachMovie("MC", "name"+i, i, {_x:mClip._xmouse, _y:mClip._ymouse})Код:
trace (mClip.name+i._x); |
Код:
mClip["name"+i]._x |
Спасибо!
А почему не работает? Код:
["name" + i].onRollOver = function(){trace ("Hellow, world!")} |
"Аттачится" клип в mClip. Поэтому надо указывать полный путь.
Но, даже если вы "аттачите" на _root, то надо указать this или _root. Конструкции ["name" + i].onRollOver не проходит по причине: идентификатор должен начинаться с буквы или _, а у вас с [ Скобки применяются внутри составной конструкции, причем точка ставится только после последней закрывающей скобки. Допустимый синтаксис: mClip["menu"+i]["myclip"+i*2]._x |
Но тем не менее это не работает:
Код:
_root["name" + i].onRollOver = function(){ |
не работает потому что вы аттачите не в _root, а в mClip... Если mClip в руте, то будет работать
Код:
_root.mClip["name" + i].onRollOver = function(){ |
Не не, извиняюсь, уже в _root аттач происходит.
Цитата:
|
В цикле надо обработчики создавать, в цикле!!!!!
Только тогда для всех клипов работать onRollOver будет. А еще лучше, в свойcтве prototype класса MovieClip сохранить сей обработчик, тогда он будет для всех мувиклипов вызываться. |
Буду рад маленькому примеру по этому поводу ;) но даже если ручками вписать
Код:
_root.name0.onRollOver = function(){ |
А name0 у Вас существует на _root?! Нет!
Вы его создали на mClip (см.выше) так делайте: Код:
_root.mClip.name0.onRollOver = function() |
Код:
_root.attachMovie("MC", "name"+i, i, {_x:_root._xmouse, _y:_root._ymouse})Код:
_root.name0.onRollOver = function(){ |
Alex_beginner, исправьте свой пост и оформите код тэгами [code][/code]. Вам уже делали замечание по этому поводу.
|
Код:
var i:Number=0 |
Вложений: 1
alexcon314! Прошу прощения за неоформленный код! Исправил.
А что еще я должен исправить?? mixery! Чтобы разобраться давайте выясним основные моменты. 1. Ваш код: Цитата:
2. MC импортирован в библиотеку и ему присвоен индентификатор импорта - MC.? 3. Код Цитата:
4. Зачем это: Цитата:
|
Итак, начнем по порядку.
1. Мой код на настоящий момент: Код:
var i:Number = 0;3. Да 4. Чтобы клип появлялся в месте клика мыши. По поводу onRollOver, я знаю как он работает, но на присоединенном клипе с именем вида name0, name1 и т.д. не хочет работать =( |
А не быстрее воспользоваться поиском по форуму? Или вы считаете, что это очень оригинальный вопрос?
http://flasher.ru/forum/showthread.php?t=96204 |
Вложений: 1
Цитата:
Давайте будем разбираться. 1. Попробуйте вынести код Код:
_root.attachMovie("MC", "name" + i, i, {_x:_xmouse, _y:_ymouse});2. Возможно у Вас есть клип с _alpha = 0 и большой глубиной, который закрывает собою создаваемые клипы. Правда это должен быть динамический клип, поскольку клипы, создаваемые в период конструирования расплагаются на отрицательных глубинах. 3. Предложение:давайте я напишу код с динамическим созданием клипов с подписанными обработчиками события onRollOver. |
И правда, если вынести из обработчика onPress то все работает! Почему!? Но мне нужно именно чтобы при нажатии там появлялся клип... Сейчас через листенеры сделаю, может так работать будет?
|
Код:
var i:Number = 0;Код:
var i:Number = 0; |
Спасибо большое! Очень помог!
|
| Часовой пояс GMT +4, время: 15:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.