Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Как узнать имя MovieClip по его координатам ???? (http://www.flasher.ru/forum/showthread.php?t=62007)

DarkChris 17.08.2004 14:31

Как узнать имя MovieClip по его координатам ????
 
Как узнать имя мувика зная его координаты
не используя:

for(i in this){
....
if ((this[i]._x==x)&&(this[i]._y==y)){trace ("THIS MOVIE");}
....
}

????

iNils 17.08.2004 14:34

Правила хорошего тона: не плохо бы объяснить зачем это.

Nox Noctis 17.08.2004 14:36

как определить температуру тела по контурным картам для шестого класса?

DarkChris 17.08.2004 14:57

Если невозможно подругому определить так и скажите ...
А зачем мне это если спрашиваю значит нужно...
Просто Если использовать for(...){} при наличии на сцене более 1000 мувиков тормозит все жутко вот и решил спросить авось есть другой метод

Nox Noctis 17.08.2004 15:01

если бы ты сказал что там у тебя за система и ЗАЧЕМ тебе это нужно - можно было бы что-то придумать. но это ведь секрет, да?

DarkChris 17.08.2004 15:09

А вы такие любознательные :) Есть карта - строится динамически из матрицы [mxm] карта 2.5D (изометрическая) мне нужно при нажатии кнопки мыши сделать - элемент карты прозрачным при отпускании нормальным
у меня есть координаты мыши и куча мувиклипов

iNils 17.08.2004 15:18

Типичный случай :))))))

Человек не знающий что есть молоток пытается забивать гвозди ватой, у него это естественно не получается и он пытается узнать у других узнать, как сделать вату тяжелой и твердой. Вопрос естесственно всех удивляет, зачем это делать с ватой? На что получают ответ: "Не ваше дело, нужно значит нужно". Люди голову ломают, пытатся придумать как вату сделать с заданными условиями, вместо того чтобы предложить человеку молоток. В результате, он гвоздь так и не забил... а мог бы.

DarkChris 17.08.2004 15:23

Я описал проблемму в общих чертах ... Если нечего сказать по существу не спамь плиз...Это никому не нужно .... Перед твоей репликой я как раз образно описал для чего мне это читать нужно а не философию разводить "Если бы да кабы"

iNils 17.08.2004 15:32

Цитата:

Я описал проблемму в общих чертах ... Если нечего сказать по существу не спамь плиз...Это никому не нужно .... Перед твоей репликой я как раз образно описал для чего мне это читать нужно а не философию разводить "Если бы да кабы"
1. Описал бы раньше, то сразу бы получил молоток (ответ)
2. Есть что скзать, но хочется чтобы в следующий раз ты вопрос ставил правильно, тебе же лучше будет, сразу ответ получишь.
3. Сделать надо так. Описываешь фунцию которая обрабатывает твои действия при нажатии на мувик. Скажем ты хочешь сделать его полупрозрачным, тогда пишешь внутри функциии:

this._alpha=50;

this - это объект вызвавший в данном случаи эту функцию

Далее, при генерации поля из мувиков, принудительно вешаешь им на событие onRelease свою функцию.
Скажем myMovieClip.onRelease=myFunction;

DarkChris 17.08.2004 15:45

Моя ошибка в том что я не сказал точнее :
Вот действия какие мне нужны :
Я нажал на кнопку мыши и вожу ею по полю и те клипы над которыми был курсор стали полупрозрачными отпускаю клавишу мыши они опять становятся нормальными
MyTexture.prototype = new MovieClip();
....
MyTexture.prototype.onRelease = function(){
}
...
это не даст того результата который мне нужен onPress тоже не даст

iNils 17.08.2004 15:50

Тогда нужно так:
1. При нажатии мышки, устанавливается флаг в значение 1
2. Всем обектам поля назначить фунцию на onRollOver, которая при значении флага=1 делает вызвавшие ее объект полупрозрачным и добавляет его имя в массив.
3. При отпускании мышки, флаг в значение 0, а все объекты, имена которых в массиве, опять становятся с альфой=100.

DarkChris 17.08.2004 16:10

А можно подробнее ???

Я делаю :
Selected = new Array();
....
this.onMouseDown=function(){
flag=1;
}
....
this.onMouseUp=function(){
flag=0;
}
....

MyTextres.prototype.onRollOver=function(){
if (flag==1) {
this._alpha=50;
Selected.push(this._name);}
}

и ничего не работает :(

iNils 17.08.2004 16:32

Ошибка вышла, при нажатой клавише мышки, событие onRollOver не срабатывает.

DarkChris 17.08.2004 16:45

Да я заметил :) При нажатой мыши идет onDragOver

Nox Noctis 17.08.2004 16:53

можно так. но тормозить думаю всё равно будет.
Код:

_global.Texture = function() {
        this.useHandCursor = this.Hand;
};
Texture.heap = [];
Texture.prototype = new MovieClip();
Texture.prototype.onPress = function() {
        Texture.heap.push(this);
        this._alpha = 50;
};
Texture.prototype.onRelease = function() {
        this._alpha = 100;
        while (Texture.heap.length) {
                var item = Texture.heap.shift();
                item._alpha = 100;
        }
};
Texture.prototype.onReleaseOutside = Texture.prototype.onRelease;
Texture.prototype.onMouseMove = function() {
        if (Texture.heap.length && this._alpha == 100) {
                var tst = this.hitTest(_root._xmouse, _root._ymouse, false);
                if (tst) {
                        this._alpha = 50;
                        Texture.heap.push(this);
                }
        }
};


DarkChris 17.08.2004 17:57

ВСЕ ЗАРАБОТАЛО СПАСИБО БОЛЬШОЕ :)


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

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