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

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

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

Регистрация: Nov 2010
Сообщений: 8
Question Объект не реагирует на клик мыши.

Здравствуйте. Я решил создать свою первую простенькую игру, но сразу же столкнулся с проблемой. Проблема в том что когда я кликаю на кружок ничего не происходит (а он должен исчезнуть и появиться новый).
Вот код:
Код AS3:
package game{
    import flash.display.*;
    import flash.events.*
    public class ButtonsGame extends Sprite {
        public function ButtonsGame() {
            var circle:Shape = new Shape();
            var random:Number=Math.random();
            circle.graphics.lineStyle(1);
            circle.graphics.beginFill(0x0000ff, 1);
            circle.graphics.drawCircle(random*50,random*50,random*50);
            circle.x=random*100;
            circle.y=random*50;
            addChild(circle);
            circle.addEventListener(MouseEvent.CLICK,mouseClickListener);
        }
        public function mouseClickListener(e:MouseEvent):void {
            removeChild(e.target.circle)
            addChild(e.target.circle)
        }
    }
}
И еще вопрос:как сделать чтобы круг создавался случайного цвета?

Старый 14.11.2010, 14:08
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 2  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Не вникая особо в код, предположу, что кружок исчезает и появляется - точно такой же и в том же месте, так как его случайное положение вы задаёте в конструкторе однократно, а не по клику.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
e.target и есть circle.

Во-вторых, Вы удаляете и тут же добавляете circle. Есть ли в том смысл?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 14.11.2010, 14:16
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Во-вторых, Вы удаляете и тут же добавляете circle. Есть ли в том смысл?
То есть, вам нужно вставить задержку между этими двумя строчками - будь то таймер, сетТаймер, сетИнтервал иль еще чего. Плеер не перерисовывает ничего, пока не закончится блок кода.
__________________
тут я

Старый 14.11.2010, 14:27
Droplz вне форума Посмотреть профиль Отправить личное сообщение для Droplz Найти все сообщения от Droplz
  № 5  
Ответить с цитированием
Droplz

Регистрация: Nov 2010
Сообщений: 8
Цитата:
Сообщение от VVall Посмотреть сообщение
Не вникая особо в код, предположу, что кружок исчезает и появляется - точно такой же и в том же месте, так как его случайное положение вы задаёте в конструкторе однократно, а не по клику.
Нет, пробовал убрать addChild, все равно ничего не работает.
Цитата:
Сообщение от КорДум Посмотреть сообщение
То есть, вам нужно вставить задержку между этими двумя строчками - будь то таймер, сетТаймер, сетИнтервал иль еще чего.
Нет, не надо, надо чтобы все появлялось мгновенно.
Потом сделаю время, счет и штрафы за клик мимо.
Так что смысл есть.
Цитата:
Сообщение от dimarik Посмотреть сообщение
e.target и есть circle.
Но если я пишу просто e.target или circle то получаю ошибки.
Цитата:
Сообщение от КорДум Посмотреть сообщение
Плеер не перерисовывает ничего, пока не закончится блок кода.
Что-то не совсем понял...
Если я не введу задержку то ничего не будет работать что ли?


Последний раз редактировалось Droplz; 14.11.2010 в 14:32.
Старый 14.11.2010, 14:32
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
circle - Shape, а у Shape нет мышиных событий.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 14.11.2010, 14:33
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Все ответили мимо.
Вы используете Shape. Прочтите в хелпе, от чего он наследуется. И вообще, ошибки из-за типизации. На будущее: e.currentTarget as Sprite
Это первое.
Цитата:
Что-то не совсем понял...
Судя по всему, вы не читали Мука или читали его невнимательно. Плеер не отрендерит графику до того, как закончится весь блок кода. Мук про это пишет.
Цитата:
или circle
А у вас circle локальная переменная, так что, конечно, до нее не достучаться. Это второе. Сделайте circle приватным полем класса. И сделайте его спрайтом. И будет вам счастье.
__________________
тут я

Старый 14.11.2010, 14:53
Droplz вне форума Посмотреть профиль Отправить личное сообщение для Droplz Найти все сообщения от Droplz
  № 8  
Ответить с цитированием
Droplz

Регистрация: Nov 2010
Сообщений: 8
Огромное спасибо!

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

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

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


 


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


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