Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   появление элемента при наведении(rollover) (http://www.flasher.ru/forum/showthread.php?t=192228)

stefan9211 10.01.2013 18:06

появление элемента при наведении(rollover)
 
Вложений: 2
Здравствуйте!
Есть карта:
map_pek2.swf   (916.0 Кб)

есть маячок:
Вложение 28965
прописано действие:

Код AS1/AS2:

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)нужно при наведении затемнить всё остальное кроме той области которая выделена

Hauts 10.01.2013 18:15

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. вващем случае будет выглядеть примерно так
Код AS1/AS2:

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               
                }
 
 
}

но их сначала надо сделать все невидемыми а то будут пропадать только после наведение

mooncar 12.01.2013 10:33

Цитата:

Сообщение от sasha88886 (Сообщение 1115245)
Есть такой метод обекта клипа называется _alpha

_alpha - не является методом, это свойство.

И еще. sasha88886, не коверкайте русский язык, здесь, на форуме это недопустиммо.

stefan9211 12.01.2013 16:22

sasha88886 да спасибо,почти то что нужно,остальное сам доделал

Добавлено через 1 час 34 минуты
с маячком так и не могу разобраться!

sasha88886 12.01.2013 20:14

Цитата:

И еще. sasha88886, не коверкайте русский язык, здесь, на форуме это недопустиммо.
Друзя я дико извеняюсь. Я из Украины понимаете там Перестройка, развал, бендыры, короче я неучил русский, и сильно об этом жалею.
Цитата:

_alpha - не является методом, это свойство.
Может быть. Просто я паралельно работаю на С++ там все называют методом. Побольшому счету это он и есть.
Цитата:

с маячком так и не могу разобраться!
Можно както так.
Код AS1/AS2:

//это крепим к обекту где и проверяем зоны
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 огромное спасибо ,вы потеряли время ради меня,я очень благодарен! я конечно не всё понял в коде но что то получается


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

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