Просмотр полной версии : как узнать над каким объектом находится курсор
Допустим имеется несколько объектов,мы не знаем их id.
как узнать их имя просто проведя по ним курсор.
кто знает подскажите.
если на них навешать обработчики onRollOver = function(){trace(this._name);}
если id и имя одно и то же, то наверно так:
на самом клипе
on(rollOver){trace(_name)}
если id и имя одно и то же, то наверно так:
на самом клипе
on(rollOver){trace(_name)}
А если их несколько сотен )))
какая разница, мы всеравно имя не знаем:)
вот наведем на них - узнаем:))) и что-нибудь потом придумаем:)))
Kyber Anton
27.04.2006, 16:55
Может лучше поочерёдно проверять на столкновение курсора с клипом каждый клип в событии onEnterFrame? Я просто сторонник писАть весь код в одном кадре, а тут он по всей сцене разбежится.
motor4ik
27.04.2006, 17:21
for (i){
_root[i].onRollOver = roll;
}
roll = function():Void{trace(this._name);}
вот те в одном кадре
Kyber Anton
27.04.2006, 17:35
Так я и говорю..
моторчик, что это такое вы написали?
В том то и дело, что на объекты нельза вешать функции. Нужно чтобы, когда наводишь мышку на объект, возвротилось его имя, чтобы с ним можно было работать.
Моторчик поясните пойжалуста код. а то он что-то не работает.
я б удивился если б он работал)))это сокращение,для того,чтоб просто смысл показать...
если нельзя на обьекты..то куда можна?..если сделать в одном кадре,то лучше методом моторчика:
for (i=1;i<=100;i++){
_root[i].onRollOver = roll;
}
roll = function():Void{trace(this._name);}
где твои мувики будут иметь инстантимена 1,2,3,4 и т.д. до 100 )))
Данную задачу надо более детально описать.
Если нужно озватить часть объектов (и каких?) то это одно, а если все-все, то можно так:
MovieClip.prototype.onRollOver = function () {
trace (this);
};
или так :)
MovieClip.prototype.onMouseMove = function () {
if (this.hitTest (_root._xmouse, _root._ymouse) and this != _root) {
trace (this);
}
};
Вот мне подсказали код.
_root.onMouseMove = function() {
for(var i in this){
if(typeof(this[i])=="movieclip")
if(this[i].hitTest(this._xmouse,this._ymouse,true))
trace("mouse over "+this[i]);
}
}
Дело в том что он объекты читает и выдает имя. Но неполучается обратиться к подгружаемым объектам из swf файла.
а мне нужно обратиться именно к ним.
Подскажите что делать. Зарание спасибо.
К подгружаемым? Это с помощью loadMovie?
Это вот так.
mcLoader.addListener(l);
_root.createEmptyMovieClip("region", 2);
var mc1 = _root["region"];
mcLoader.loadClip("map/region.swf", mc1);
var mcLoader = new MovieClipLoader();
var l = {};
l.onLoadInit = function(mc1) {;}
Дело в том, что он видет только общий клип region
Тэгами code кто пользоваться будет?
Ну так. Код что тебе дали обходит только рутовые клипы.
Смени в _root.onMouseMove = function() { _root на то что нужно.
Я просто сторонник писАть весь код в одном кадре, а тут он по всей сцене разбежится.
вот знаете.. это будет лично мое имхо, и может оно связано с тем, что у меня мало опыта, но помоему в кадре нужно писать код, только тогда, когда иного выхода нет.. в мувике есть (к примеру) замечательная on(enterFrame), т.е все что я напишу в скобках произойдет молниеносно, а на кадре не так, на кадре все постепенно.
например создать мувик и перемещать в одном кадре нельзя, т.к он будет все время создаваться, значит в одном создаем, а в другом двигаем, и поехало все через рефреш..
но, опять же, может у меня просто мало опыта..
А мне нравится такой способ:
startDrag (_root.pointer,true);
pointer.onEnterFrame=function () {
name=this._droptarget;
}
И нигде не надо больше ничё писать, а мувикам можно и имен не давать, но только нельзя будет drag использовать (хотя можно извернуться):D
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.