Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.01.2013, 00:30
sampo вне форума Посмотреть профиль Найти все сообщения от sampo
  № 1  
Ответить с цитированием
sampo
Banned

Регистрация: Jan 2013
Сообщений: 14
Arrow объект event

создаю поле кнопок,10х10.
Подписываю каждую кнопку на одно событие,получаю в объект
Код AS3:
event
,
далее просто вывел в оутпут
Код AS3:
trace(e);
Все хорошо,все прекрасно отображается.
Но когда я пытаюсь обратится к
Код AS3:
e.stageX
что бы определить нажатую область и округляя до 0 , 30 , 60, 90, 120, 150..... 300 мне компилятор пишет,что stageX только для чтения.Осознал расстроился.

Моя идея была такова:нажал на кнопку,прочтил e.stageX и e.stageY с помощью условия
Код AS3:
if(e.stageX<=30&&e.stageX>=0){
variableX = 0;
}
аналогично для Y , записываем в переменную variableY и сравниваю с предварительно записанными в массив координатами красных объектов.
но увы

Суть того что делаю.
Поле кнопок 10х10 (зеленого цвета)
Под это поле разбрасываю еще 10 объектов,аналогичной формы (красного цвета)
Пытаюсь при нажатии на кнопку,если под ним красный объект,генерировать какое либо событие (неважно какое).

Старый 28.01.2013, 00:52
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Проблема-то в чем? Хотели прочитать, ну так оно для чтения, читайте))
Вы может в условии где-то написали "e.stageX = 30" вместо == или >=. То есть попытались перезаписать свойство, которое только для чтения.

Добавлено через 8 минут
Вы так про каждую клетку чтоли расписываете?
Цитата:
if(e.stageX<=30&&e.stageX>=0){
variableX = 0;
}
Не проще будет
Код AS3:
variableX = uint(e.stageX / 30);
__________________
Reality.getBounds(this);

Старый 28.01.2013, 14:59
sampo вне форума Посмотреть профиль Найти все сообщения от sampo
  № 3  
Ответить с цитированием
sampo
Banned

Регистрация: Jan 2013
Сообщений: 14
Дело в том,что при нажатии на кнопку я хочу каждый раз ставить в соответствие,попарно, координаты мин,записываемых в массив в своем классе

Код AS3:
variableX = uint(e.stageX / 30) ;
В данной строке,при нажатии на кнопку мы получаем значение допусти 18 для stageX делим на 30,получаем какое либо значение и округляем до целого,правильно?

Но дело в том что мне нужно как то еще получать координаты (0,0),(0,30),(30,0).....(300,0) а в вашем случае выходит не меньше 30,округление в большую сторону вроде как будет..

Старый 28.01.2013, 15:25
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 4  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Округления в большую сторону при uint(...) ну никак не может быть.
__________________
мой пустой блог

Старый 28.01.2013, 15:49
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 5  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от sampo Посмотреть сообщение
Но когда я пытаюсь обратится к
Код AS3:
e.stageX
что бы определить нажатую область
Это как-то странно всё. назначьте кнопкам например name, и через e.target.name доставайте его.
Зачем определять область?
__________________
adobe AS3 manual

Старый 28.01.2013, 15:50
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 6  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Округления в большую сторону при uint(...) ну никак не может быть.
Извините, не могу удержаться
Код AS3:
trace(uint(-10.5) > -10.5); // true
Но в данном случае, конечно, ifamberg прав.
__________________
...вселенская грусть

Старый 28.01.2013, 15:52
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 7  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
2gloomyBrain: ну, умыл, умыл =)
__________________
мой пустой блог

Старый 28.01.2013, 16:40
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 8  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Округления в большую сторону при uint(...) ну никак не может быть.
А оно и не надо.
Код:
 0  1  2  логическая координата
<-><-><->
012345678 экранная координата (шаг 3 пикселя)

uint(0/3) = 0
uint(1/3) = 0
uint(2/3) = 0

uint(3/3) = 1
unit(4/3) = 1
unit(5/3) = 1

unit(6/3) = 2
unit(7/3) = 2
unit(8/3) = 2
Здесь не актуально, но если есть отрицательные координаты, то вместо int(uint, понятно, не подходит) надо использовать Math.floor, иначе клетку будет проскакивать (отрицательные числа округляются int в большую сторону)

Старый 28.01.2013, 17:39
sampo вне форума Посмотреть профиль Найти все сообщения от sampo
  № 9  
Ответить с цитированием
sampo
Banned

Регистрация: Jan 2013
Сообщений: 14
Цитата:
Сообщение от strangedk Посмотреть сообщение
Это как-то странно всё. назначьте кнопкам например name, и через e.target.name доставайте его.
Зачем определять область?
мне надо определить какую кнопку нажали и сравнить с кордами объекта который может под ним находится.

Добавлено через 33 секунды
спасибо,понял.

Старый 28.01.2013, 18:18
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 10  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от sampo Посмотреть сообщение
мне надо определить какую кнопку нажали и сравнить с кордами объекта который может под ним находится.
Кнопка на которую нажали это e.target
сделайте в обработчике

Код AS3:
trace((e.target as DisplayObject).x);
trace((e.target as DisplayObject).y);
и увидите что координаты там уже есть, их не нужно дополнительно вычислять
__________________
adobe AS3 manual

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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