Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   подсветка ячеек таблицы (http://www.flasher.ru/forum/showthread.php?t=201421)

funkypanky 16.06.2013 02:41

подсветка ячеек таблицы
 
Всем привет!
Помогите исправить подсветку в таблице при наведении курсора на ячейку-у меня подсвечивается только нижний правый квадрат, остальные не подсвечиваются.
Вот код:

Код AS3:

import flash.events.Event;
import flash.filters.GlowFilter;
 
for (var i:int = 0;i<5;i++){
        for (var j:int=0;j<5;j++){
                var mRect:cube = new cube();
                mRect.x =100+ i*45
                mRect.y =100+ j*45
                addChild(mRect)
        }
}
 
stage.addEventListener(Event.ENTER_FRAME, loop)
 
function loop (e:Event):void {
        mText.text = "Xcor: " + mouseX.toString()+ " Ycor: "+ mouseY.toString()       
}
 
mRect.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
mRect.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
 
 
 
function onMouseOver (event:MouseEvent):void {
        var mRect:cube =  cube(event.target)
        event.target.filters = [new GlowFilter(0xff0000, 1)];
}
 
function onMouseOut (event:MouseEvent):void {
        var mRect:cube =  cube(event.target)
        event.target.filters = [];
}

и ещё вопрос -как в каждую ячейку ввести, к примеру, цифры? чтобы я мог видеть визуально номер конкретной ячейки.

Babylon 16.06.2013 03:03

у тебя mRect хранит ссылку на последний созданный нижний правый квадрат делай массив

funkypanky 16.06.2013 03:08

Цитата:

Сообщение от Babylon (Сообщение 1138206)
у тебя mRect хранит ссылку на последний созданный нижний правый квадрат делай массив

а как двухмерный цикл правильно забить в массив?
пробую так писать- не выходит:

Код AS3:

var rectArray:Array = new Array();
for (var i:int = 0;i<5;i++){
        for (var j:int=0;j<5;j++){
                var mRect:cube = new cube();
                mRect.x =100+ i*45
                mRect.y =100+ j*45
                addChild(mRect);
                rectArray.push(mRect);
        }
}


Babylon 16.06.2013 03:17

не правильно написал. это тоже самое что и rectArray[0].push(mRect);

belyjj 16.06.2013 09:03

Почему же не правильно?
Насколько я понимаю, каждый раз создаётся новый объект и помещается в массив.
Вот только зачем нужен массив?
Если нужно просто подсвечиветь при наведение мыши текущую ячейку, то наверно в обработчике надо писать так:
Код AS3:

event.currentTarget.filters = [];


maincode 16.06.2013 10:24

Код AS3:

import flash.events.Event;
import flash.filters.GlowFilter;
 
for (var i:int = 0;i<5;i++){
        for (var j:int=0;j<5;j++){
                var mRect:cube = new cube();
                mRect.x =100+ i*45
                mRect.y =100+ j*45
                addChild(mRect)
                mRect.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
                mRect.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
        }
}
 
stage.addEventListener(Event.ENTER_FRAME, loop)
 
function loop (e:Event):void {
        mText.text = "Xcor: " + mouseX.toString()+ " Ycor: "+ mouseY.toString()       
}
 
 
 
function onMouseOver (event:MouseEvent):void {
        var mRect:cube =  cube(event.target)
        event.target.filters = [new GlowFilter(0xff0000, 1)];
}
 
function onMouseOut (event:MouseEvent):void {
        var mRect:cube =  cube(event.target)
        event.target.filters = [];
}


funkypanky 16.06.2013 13:19

Цитата:

Сообщение от maincode (Сообщение 1138217)
Код AS3:

import flash.events.Event;
import flash.filters.GlowFilter;
 
for (var i:int = 0;i<5;i++){
        for (var j:int=0;j<5;j++){
                var mRect:cube = new cube();
                mRect.x =100+ i*45
                mRect.y =100+ j*45
                addChild(mRect)
                mRect.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
                mRect.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
        }
}
 
stage.addEventListener(Event.ENTER_FRAME, loop)
 
function loop (e:Event):void {
        mText.text = "Xcor: " + mouseX.toString()+ " Ycor: "+ mouseY.toString()       
}
 
 
 
function onMouseOver (event:MouseEvent):void {
        var mRect:cube =  cube(event.target)
        event.target.filters = [new GlowFilter(0xff0000, 1)];
}
 
function onMouseOut (event:MouseEvent):void {
        var mRect:cube =  cube(event.target)
        event.target.filters = [];
}


Спасибо большое!) :victory::yahoo:
Цитата:

Сообщение от belyjj (Сообщение 1138214)
Почему же не правильно?
Насколько я понимаю, каждый раз создаётся новый объект и помещается в массив.
Вот только зачем нужен массив?
Если нужно просто подсвечиветь при наведение мыши текущую ячейку, то наверно в обработчике надо писать так:
Код AS3:

event.currentTarget.filters = [];


я тоже не понял зачем ещё в массив загонять в таком случае):D


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

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