![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2006
Сообщений: 57
|
У меня есть такой код. На сцене (за краями) валяется 2 мувика - copy_l и copy_r. Есть прямоугольник Analyser, над которым создаются дубликаты этих copy_l и copy_r; По глубине дб выше чем Analyser, иначе сообщения от мыши не пройдут.
Проблема номер раз: они все равно не проходят Проблема номер два: если сделать финт ушами и после создания кучи дубликатов убрать с вида Analyser (_y += 1000), то сообщения начинают проходить но только к верхним дубликатам. Вижу проблему в getNextHighestDepth, которая на _root выдает шибко большие числа. Как написано в Справке, это не правильно. На других мувиках выдает нули... Как мне сделать чтоб в куче дубликатов (один на другом, потом они мышкой растаскиваются), сообщения получали все и чтоб были правильные depth? class Analyser extends MovieClip {
var type : String;
var NID : Number;
var copyl;
var copyr;
function Analyser()
{
copyl = eval("_root." + "copy_l");
copyr = eval("_root." + "copy_r");
if (_global.objs == undefined)
{
_global.objs = 0;
_global.getnxt = function()
{
_global.objs++;
return _global.objs;
}
}
duplicate();
_visible = false;
NID = setInterval(this,"dub", 1000);
}
function dub()
{
clearInterval(NID);
for(var i = 0; i < 11 ; i++) duplicate();
_y+=1000;
}
function duplicate()
{
var num = _global.getnxt();
var copyl1 = copyl.duplicateMovieClip("copyl" + num, _root.getNextHighestDepth(),
{_x : getBounds(_root).xMin + 10, _y : 10+ (getBounds(_root).yMin + getBounds(_root).yMax) / 2,
type : this.type, subtype : "moveme", myPipe : ("copyr" + num)});
var copyr1 = copyr.duplicateMovieClip("copyr" + num, _root.getNextHighestDepth(),
{_x : getBounds(_root).xMax - 5, _y : 10+(getBounds(_root).yMin + getBounds(_root).yMax) / 2,
type : this.type, subtype : "moveme", myPipe : ("copyl" + num)});
trace(copyl1 + " " + copyl1.getDepth());
copyl1.onMouseMove();
copyr1.onMouseMove();
}
function onMouseMove()
{
}
}
)Последний раз редактировалось World Architect; 31.05.2006 в 18:25. |
|
|||||
|
Регистрация: May 2006
Сообщений: 57
|
Вернее мышкой цепляется самый нижний из кучи. В остальное не доходит
|
|
|||||
|
исходник давай, твое обьяснение никуда не годится.
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
|
Регистрация: Jun 2005
Адрес: в Питере
Сообщений: 981
|
Цитата:
Цитата:
и почему она вызывается два раза?
__________________
Делай всё быстро, но не торопись!.._/*o|o*\_. |
|
|||||
|
Регистрация: May 2006
Сообщений: 57
|
Она не 2 раза вызывается
а по одному для разных мувиков. Просто названия похожие.Насчет getNextHighestDepth, то в справке к ней написано: Note: If you are using version 2 components, do not use this method. If you place a version 2 component either on the Stage or in the Library, the getNextHighestDepth() method can sometimes return depth 1048676, which is outside the valid range. If you are using version 2 components, you should always use the version 2 components Вызываю, как видно к _root.getNextHighestDepth(). |
|
|||||
|
Регистрация: May 2006
Сообщений: 57
|
Analyser сделан для того чтобы программер кинул мувик Analyser на рабочее пространство, тем самым показав своими координатами, в какое место создавать дубликаты другого мувика конструктору Analyser'а. После создания кучи дубликатов, Analyser сваливает за границу рабочего пространства (за экран).
Видимо передачу мышовых сообщений нагружу на Analyser. Если конечно _xmouse и _ymouse в любом случае пересчитываются, даже если Depth не пропускает события. Если нет, придется париться... Считать еще и _xmouse и _ymouse... |
|
|||||
|
Регистрация: May 2006
Сообщений: 57
|
а насчет
не обращайте внимания, к делу не относится (обновление состояний мувиков так делается)Вопрос с Depth еще висит ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не используй getNextHighestDepth
А ещё лучше забудь и про _root, eval и не пихай всякий мусор в _global. Поверь -- без них можно прожить совершенно легко. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
) и работало как часы ![]() |
|
|||||
|
Регистрация: May 2006
Сообщений: 57
|
А как мне тогда глубину задать при дублировании?
Последний раз редактировалось iNils; 01.06.2006 в 12:06. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|