Просмотр полной версии : появление элемента при наведении(rollover)
stefan9211
10.01.2013, 18:06
Здравствуйте!
Есть карта:
map_pek2.swf
есть маячок:
28965
прописано действие:
for ( var i=0; i<100; i++ ){
var obj = CON["c"+i]
obj.onRollOver = function(){
this._x -= this._width/8
this._y -= this._height/8
this._xscale = this._yscale = 120
this.swapDepths( this._parent.getNextHighestDepth() )
}
obj.onRollOut = function(){
this._xscale = this._yscale = 100
this._x += this._width/8
this._y += this._height/8
}
}
Вопросы:
1)в действии прописано изменение размера символа при наведении и после;возможно ли прописать не изменение размера а изменение положения по оси z тоесть ближе дальше(изменение размера сильно растягивает пиксели т.к. это растр)
2)нужно чтобы при наведении на какой-либо участок появлялся маячок(указывающий на тот город в который идут поставки компании) а над ним надпись названия города;как прописать появление и исчезновение маячка с городом?
3)нужно при наведении затемнить всё остальное кроме той области которая выделена
1. Изменение z в коде приведет к аналогичным изменениям на экране, что и при изменении _xscale и _yscale. Фактически-то у вас же тоже размер экранный поменяется.
Поставьте растру сглаживание, как альтернатива. Ну или вектором сделайте.
2. Попробуйте использовать свойство _visible для значка.
3. Простой способ — подложить под всю карту черную подложку и менять прозрачность элементов.
stefan9211
10.01.2013, 18:27
hauts
вектор рисовать некогда
можно поподробнее что за сглаживание?
visible это функция или что такое?
у меня была подобная идея(сделать подложку) но что написать в действии чтобы при наведении на какую-либо область остальные становились прозрачными?
sasha88886
11.01.2013, 04:27
Я одного не понима у тебя маечок больше карты, для чего тебе его ростягивать тебе его сужать надо.
2)нужно чтобы при наведении на какой-либо участок появлялся маячок(указывающий на тот город в который идут поставки компании) а над ним надпись названия города;как прописать появление и исчезновение маячка с городом?
Можно вокруг мыши там например 50 пиксилей проводить проверку на наличее городов. Я ище когдато в игре делал так рисовал круг прописывал его прозрачность, и устанавлевал на кординаты мышки потом просто проверял столкновения двух обектов в твоем случае круг и город
stefan9211
11.01.2013, 16:57
sasha88886 почему растгивать маячок? вы невнимательно прочитали вопрос, растягивается область на карте а не маячок,маячок должен появляться когда наводишь на какую либо область и исчезать когда наводишь на другую область(которая соответсвенно увеличивается и появляется маячки в другом месте) или вообще выходишь за рамки карты
Добавлено через 14 минут
кстати не нужно учитывать размер маячка,я такой большой сделал просто для демонстрации,он маленький будет
sasha88886
12.01.2013, 03:04
Аааа тепер понятно. Если нет возможности найти раст. карту побольше тогда остается вектор. Кстати не надо его боятся тако рисунок можно просто переформатировать даже в фотожопе:).
Там вы спрашивали3)нужно при наведении затемнить всё остальное кроме той области которая выделена
visible это функция или что такое?
у меня была подобная идея(сделать подложку) но что написать в действии чтобы при наведении на какую-либо область остальные становились прозрачными?
Есть такой метод обекта клипа называется _alpha. вващем случае будет выглядеть примерно так
for ( var i=0; i<100; i++ ){
var obj = CON["c"+i]
obj.onRollOver = function(){
this._x -= this._width/8
this._y -= this._height/8
this._alpha=100;//100% видемый обект
this._xscale = this._yscale = 120
this.swapDepths( this._parent.getNextHighestDepth() )
}
obj.onRollOut = function(){
this._xscale = this._yscale = 100
this._alpha=10;//10% видемый обект
this._x += this._width/8
this._y += this._height/8
}
}
но их сначала надо сделать все невидемыми а то будут пропадать только после наведение
Есть такой метод обекта клипа называется _alpha
_alpha - не является методом, это свойство.
И еще. sasha88886, не коверкайте русский язык, здесь, на форуме это недопустиммо.
stefan9211
12.01.2013, 16:22
sasha88886 да спасибо,почти то что нужно,остальное сам доделал
Добавлено через 1 час 34 минуты
с маячком так и не могу разобраться!
sasha88886
12.01.2013, 20:14
И еще. sasha88886, не коверкайте русский язык, здесь, на форуме это недопустиммо.
Друзя я дико извеняюсь. Я из Украины понимаете там Перестройка, развал, бендыры, короче я неучил русский, и сильно об этом жалею.
_alpha - не является методом, это свойство.
Может быть. Просто я паралельно работаю на С++ там все называют методом. Побольшому счету это он и есть.
с маячком так и не могу разобраться!
Можно както так.
//это крепим к обекту где и проверяем зоны
onClipEvent(load){
_root.attachMovie("majak","majak",99);// так присоединяем наш маяк
_root["majak"]._x=-100;//Убираем маяк за пределы видимости
this.createTextField("city",100,0,0,220,18);//создаем текст. поле
}
for ( var i=0; i<100; i++ ){
var obj = CON["c"+i]
obj.onRollOver = function(){
this._x -= this._width/8
this._y -= this._height/8
this._xscale = this._yscale = 120
this.swapDepths( this._parent.getNextHighestDepth() )
// Проверяем находится ли мыш в зоне города. Нужно вычислять експерементально,
// цыфры я взял так для наглядности
if(_root._xmouse>100 and _root._xmouse<130
and _root._ymouse>100 and _root._ymouse<130){
_root["majak"]._x=115;//Если мыш попала в поле деествия граничителей
_root["majak"]._y=115;//выставляем маяк в зоне x-115 y-115
this["city"]._x=115;//перемещяем также наш текст
this["city"]._y=100;//по у выставляем выще маяка
this["city"].text="Москва"
}
}
obj.onRollOut = function(){
this._xscale = this._yscale = 100
this._x += this._width/8
this._y += this._height/8
_root["majak"]._x=-100;//убираем маяк
this["city"]._x=-100;//убираем надпись
}
}
Потом над этим надо екперементировать там все повыставлять правельно. Проверку нужно делать на каждый город. Короче кропотливо
stefan9211
13.01.2013, 16:46
sasha88886 огромное спасибо ,вы потеряли время ради меня,я очень благодарен! я конечно не всё понял в коде но что то получается
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.