Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Kellon
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 3

Определить конпку из списка, обрабатывающую событие мыши

26.06.2012, 20:15. Показов 1225. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package Classes
{
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.events.Event;
 
    public class Battlefield extends Sprite
    {
        var net:Cells;
        var MyArmy:ArmyCreator;
        var EnArmy:ArmyCreator;
        public function Battlefield()
        {
            net = new Cells();
            MyArmy = new ArmyCreator(28,1,"Army1.xml");
            EnArmy = new ArmyCreator(347,2,"Army2.xml");
            net.createNet( "Grass");
            addChild(net);
            addChild(MyArmy);
            addChild(EnArmy);
            for (var i : Number = 0; i < 7; i++)
            {
                for (var j : Number = 0; j < 9; j++)
                {
                    net.newClip2x2[i][j].cell.addEventListener(MouseEvent.CLICK, CellEvent);
                }
            }
        }
        private function CellEvent(e: MouseEvent):void
        {
            this.addEventListener(Event.ENTER_FRAME,Target);
        }
        private function Target(e:Event):void
        {
            MyArmy.Army[2].Attack();
        }
 
    }
 
}
как в методе CellEvent узнать на которую из 63 кнопок массива net.newClip2x2[i][j].cell ми нажали а точнее ее номер i и j.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.06.2012, 20:15
Ответы с готовыми решениями:

Определить событие по захвату мыши на WebBrowser
У меня есть webbrouser на форме, и мне необходимо выполнять действие пока курсор двигается над веббраузером. Но webbrouser не имеет...

Событие мыши: перемещение мыши при нажатой левой клавиши
Подскажите, пожалуйста как реализовать следующее: При перемещении мыши при нажатой левой клавише (выделение текста) выводится сообщение...

Когда кнопка мыши зажата, событие попадание курсора мыши в фокус контрола не работает
Есть несколько контролов на форме, на все есть событие возникающее когда мышь попадает на этот контрол, но когда зажать клавишу мыши,...

9
 Аватар для notsliva
15 / 15 / 7
Регистрация: 25.06.2012
Сообщений: 95
26.06.2012, 20:32
Не знаю, что за класс Cells, но если бы писал свой подобный класс, то добавил бы публичные свойства для хранения координат x, y (i, j) и в конструкторе задавал бы им значения. Или в методе, подобном newClip2x2, который вызывается в массиве для создания кнопок.
0
 Аватар для Kellon
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 3
26.06.2012, 20:37  [ТС]
ето сетка 7х9 из кнопок могу скрин кинуть. По них перемещяются мувиклипы поскольку все операции для етих кнопок одинаковые мне достаточно 1 функции для обработки их нажатий. Мне просто нада узнать какая кнопка будет нажата от етого будет зависить реакция мувика. Тоисть мне нада узнавать что за кнопка нажата в самой функции CellEvent.Темболее все координаты можно узнать они есть, надо узнать только номер кнопки
Миниатюры
Определить конпку из списка, обрабатывающую событие мыши  
0
 Аватар для notsliva
15 / 15 / 7
Регистрация: 25.06.2012
Сообщений: 95
26.06.2012, 21:03
так бы выглядел код с кастомным классом, но у вас создание кнопок, похоже, прописано в дебрях Cells;

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Cells extends ...
{
        public var _x: Number = 0;
        public var _y: Number = 0;
        
        // при создании кнопок будем указывать номера
        public function Cells(i: int, j: int)
        {
            _x := i;
            _y := j;
        }
}
 
...
 
var cell;
var netCell: Array = [];
 
for (var i : Number = 0; i < 7; i++)
{
        for (var j : Number = 0; j < 9; j++)
        {
            cell = new Cells(i, j);
            cell.x = ...;
            cell.y = ...;
            cell.addEventListener(MouseEvent.CLICK, cell_onClick);
            netCell.push(cell);
        }
}
 
private function cell_onClick(event: MouseEvent): void
{
    trace(event.target._x); // здесь номер i
    trace(event.target._y); // здесь номер j
}
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
26.06.2012, 21:57
notsliva, зачем писать
ActionScript 3
1
_x := i;
Достаточно
ActionScript 3
1
_x = i;
В отношении индексов, то им лучше дать названия, отличные от координат, чтобы в дальнейшем не было путаницы (кстати, при желании можно обойтись одним, зависит от задачи).
Свойства лучше не делать публичными, а оставить приватными, но при этом добавить соответствующие геттеры.
Для определения объекта достаточно в обработчике написать что-то типа
ActionScript 3
1
var item:Cells  = e.target as Cells;
Слушатель лучше добавлять не на каждую копку, а на весь контейнер. Таким образом уменьшим количество слушателей ровно в 63 раза
0
 Аватар для notsliva
15 / 15 / 7
Регистрация: 25.06.2012
Сообщений: 95
27.06.2012, 18:42
TanaTiX, конструктивно и справедливо, только ТС это, походу, не поможет. Такие люди привыкли юзать движки и фреймворки, как раз вызывая что-то наподобие net = new Cells(); а как там внутри все работает... В этом случае при упоминании о гетерах-сетерах у них зашкаливает....
И вообще что-то я засомневался в пользе своих тщетных стараний помочь людям пусть и безвозмездно...
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
27.06.2012, 19:55
Цитата Сообщение от notsliva Посмотреть сообщение
вызывая что-то наподобие net = new Cells();
в этом нет ничего плохого, и даже наоборот. Любой объект должен обладать тем функционалом, ради которого создан.


Цитата Сообщение от notsliva Посмотреть сообщение
ТС это, походу, не поможет
Если не поможет - спросит/найдет/придумает, и сделает как надо. Ну а нет, так нет. Да и начинать с чего-то надо. Все мы не с написания ОС начинали.
0
 Аватар для notsliva
15 / 15 / 7
Регистрация: 25.06.2012
Сообщений: 95
27.06.2012, 20:22
Как говаривал один хороший человек, бесспорно.
0
6 / 5 / 1
Регистрация: 20.01.2016
Сообщений: 106
30.04.2016, 20:49
Подскажите, может вопрос и пустяковый, но я пока только разбираюсь.

Кнопки созданы средствами AS, класс MyButton рисует прямоугольник на сцене, в нем же вешается слушатель и обработчик события на Click. Далее в main вызывается:

ActionScript 3
1
2
3
 var btn1:Button = new Button();
 var btn2:Button = new Button();
...
и так далее.
Как теперь в функции обработчика onClick понять по какой именно кнопке произошел клик.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
06.05.2016, 22:53
Darshi, так есть же ответ: Определить конпку из списка, обрабатывающую событие мыши
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.05.2016, 22:53
Помогаю со студенческими работами здесь

Почему при нажатии кнопки мыши происходит событие "перемещение мыши"?
Просто нажал на левую кнопку мыши и сразу же отпустил. А сам указатель мыши находится на месте Почему в этом случает возникает событие...

Как прикепить JPG на конпку Botton
Всем привет Друзья у меня такая ситуация я недавно написал Как прикепить JPG на конпку мне ответили что на google зайди там можна найти я...

Событие мыши
Добрый день всем. Ребята ответе на вопрос. Создаю динамически Labelы как сделать чтобы при наведении на них мишью они меняли цвет. ...

Событие нажатие мыши
Здравствуйте, возник небольшой вопрос. Создаю я прямоугольник, в событиях нажатия мышки указываю условие, если кликаю в пределах координат...

Событие клика мыши
Как узнать, что лкм нажата, не используя Form1_MouseClick.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru