Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Action script 2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=49)
-   -   Подпись... (http://www.flasher.ru/forum/showthread.php?t=60259)

Linuxoid_Alex 06.07.2004 05:36

Подпись...
 
В кадре используется код:
Код:

for (i=0;i<=_global.count;i++)
{
        if ((_xmouse>_global.xs[i]) and (_xmouse<_global.xe[i]))
        {
                if ((_ymouse>_global.ys[i]) and (_ymouse<_global.ye[i]))
                {
                        createTextField("comment",1112,_xmouse,_ymouse,100,25);                       
                        comment.text = i+","+_global.values[i];
                        comment.border=true;
                        comment.background = true;
                        comment.background.color = 0xffecce;
                }else
                {
                        createTextField("comment",1112,0,0,0,0);                       
                }
        }
        if ((_xmouse<_global.xs[i]) or (_xmouse>_global.xe[i]))
        {
                createTextField("comment",1,1112,0,0,0);
        }
}
//_global.xs[] - массив значений x
//_global.xe[] - то-же самое
//_global.ys[] - массив значений y
//_global.ye[] - то-же самое
//_global.count - размер массивов этих самых значений

Смысл вышенаписаного в том, что если координата x мышы больше xs[i] и меньше xe[i], а также y>ys[i] и y<ye[i], то показать комментарий. Иначе его скрыть. Однако коментарий показывается только в области при i=_global.count. Если-же убрать вот-это:
Код:

        if ((_xmouse<_global.xs[i]) or (_xmouse>_global.xe[i]))
        {
                createTextField("comment",1,1112,0,0,0);
        }

То работать будет везде, но скрываться будет только выходя за пределы по y.
Подскажите, plz, где глюк???

Елё 06.07.2004 14:49

Код:

// это вставить куди нить в начало, не в этом кадре
createTextField("comment",1112,0,0,100,25);                       
comment.border=true;
comment.background = true;
comment.background.color = 0xffecce;



// а это уже в этом
comment._visible = false;
for (i=0;i<=_global.count;i++)
{
        if (    _xmouse > _global.xs[i]
                and _xmouse < _global.xe[i]
                and _ymouse > _global.ys[i]
                and _ymouse < _global.ye[i])
        {
                comment._visible = true;
                comment._y = _ymouse;
                comment._x = _xmouse;
                comment.text = i+","+_global.values[i];
                break;
        }
}


silin 06.07.2004 19:30

если правильно понял вопрос( в чем сомневаюсь)
Код:

createTextField("comment",1112,0,0,100,25);               
comment.border=true;
comment.background = true;
comment.background.color = 0xffecce;
xs=[0,0,400,400];
xe=[100,100,600,600];
ys=[0,100,0,100];
ye=[300,400,300,400];
com=["0","1","2","3"];
                               
Mouse.addListener(m={});
m.onMouseMove=function(){
        for(var i=0;i<xs.length;i++) if(_xmouse>xs[i]&&_xmouse<xe[i]&&_ymouse>ys[i]&&_ymouse<ye[i]) break;
        comment.text=com[i];
        comment._visible=(i<xs.length);
}


Linuxoid_Alex 07.07.2004 09:11

Сделал, кому интересно:
Код:

if ((_xmouse<_global.xs[0]) and (_xmouse>_global.xe[_global.count]))
{
        hide();
}else
{
        i=0;
        xm = _xmouse;
        while((xm>_global.xs[i]) or (xm>_global.xe[i]))
        {
                i++;
                if (i>_global.count)
                {
                        hide();
                        break;       
                }
        }
        if (xm>xe[i-1])
        {
                hide();
        }else
        {
                ym = _ymouse;
                if ((ym>_global.ys[i-1]) and (ym<ye[i-1]))
                {
                if (_global.names[i-1]!=undefined)
                {
                        txt = _global.names[i-1]+","+_global.values[i-1];
                }else
                {
                        txt = "noname,"+_global.values[i-1];
                }
                sze=length(String(txt))*14;
                createTextField("count",2,_xmouse,_ymouse-15,sze,20);
                count.border=true;
                count.background=true;
                count.background.color=0xffe3c4;
                count.text=txt;
                count.autoSize = true;
                count.selectable = false;
                }else
                {
                        hide();
                }
        }
}

function hide()
{
        createTextField("comment",2,0,0,100,100);
        comment.selectable = false;
}

В следующем кадре - gotoAndPlay(номер сего кадра).
Вот вам и ещё один вариант коментариев

Елё 07.07.2004 17:53

Какой код... Ну просто слов нет!
И нафига я тут распинался?


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

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