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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.12.2012, 00:56
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 11  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Цитата:
stage.addEventListener(MouseEvent.CLICK, onCC) //внезапно для меня, работает с пустой graphics и даже без спрайтов-потомков!
Ну так это же stage! Это глобальная область.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
"пустой graphics" у стейдж? А у Stage есть graphics?
Стейдж не просто какой-то контейнер. Даже у классов, которые он якобы расширяет, Stage наследует далеко не все свойства, методы и события. Вы не можете создавать его экземпляры, и не можете наследовать. Стейдж не является составной частью Вашей программы, он представляет среду, в которой исполняется Ваша программа.
А вот почему рут не реагирует на мышь собственной графикой, это интересно.
__________________
Reality.getBounds(this);

Старый 05.12.2012, 01:14
am_devcorp вне форума Посмотреть профиль Отправить личное сообщение для am_devcorp Найти все сообщения от am_devcorp
  № 13  
Ответить с цитированием
am_devcorp
 
Аватар для am_devcorp

Регистрация: Jan 2012
Адрес: (0;0;0) относительно меня
Сообщений: 82
Отправить сообщение для am_devcorp с помощью Skype™
А ну окей тогда, просто странно (и я не понимаю почему) что без this и просто_так не работает. И странно что я натолкнулся на это только сейчас а не раньше.
__________________
cats are supreme beings

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Вообще интересно. Баг проявляется только с документ-классом.
Код AS3:
package
{
 
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    import flash.events.MouseEvent;
 
    public class Main extends Sprite
    {
 
        public function Main()
        {
            super();
            super.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
        }
 
        private function onAddedToStage(event:Event):void
        {
            super.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
 
            super.stage.align = StageAlign.TOP_LEFT;
            super.stage.scaleMode = StageScaleMode.NO_SCALE;
 
            var useDocumetClass:Boolean = false;
            var spr:Sprite;
 
            if (useDocumetClass) {
                spr = this;
            }else {
                spr = new Sprite();
                super.addChild(spr);
            }
 
            spr.graphics.beginFill(0xFF0000);
            spr.graphics.drawRect(0, 0, 100, 100);
            spr.graphics.endFill();
 
            spr.addEventListener(MouseEvent.CLICK, onClick);
 
        }
 
        private function onClick(event:MouseEvent):void
        {
            trace("click");
 
            var spr:Sprite = event.target as Sprite;
 
            spr.removeEventListener(MouseEvent.CLICK, onClick);
            spr.addEventListener(MouseEvent.CLICK, onClick2);
 
            super.stage.addChild(spr);
        }
 
        private function onClick2(event:MouseEvent):void
        {
            trace("click 2");
 
            var spr:Sprite = event.target as Sprite;
 
            spr.removeEventListener(MouseEvent.CLICK, onClick2);
            spr.addEventListener(MouseEvent.CLICK, onClick3);
 
            super.stage.removeChild(this);
 
        }
 
        private function onClick3(event:MouseEvent):void
        {
            trace("click 3");
        }
 
    }
}
__________________
...вселенская грусть

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

Регистрация: Jan 2012
Адрес: (0;0;0) относительно меня
Сообщений: 82
Отправить сообщение для am_devcorp с помощью Skype™
Цитата:
Сообщение от Wolsh Посмотреть сообщение
"пустой graphics" у стейдж? А у Stage есть graphics?
Стейдж не просто какой-то контейнер. Даже у классов, которые он якобы расширяет, Stage наследует далеко не все свойства, методы и события. Вы не можете создавать его экземпляры, и не можете наследовать. Стейдж не является составной частью Вашей программы, он представляет среду, в которой исполняется Ваша программа.
А вот почему рут не реагирует на мышь собственной графикой, это интересно.
Да, согласен, забыл про эту тонкость. Как решение проблемы могу предложить создать второй класс, например RealMain и все делать там, а в документ-классе написать что-нибудь типа "addChild(new RealMain())". Костыль, правда.
__________________
cats are supreme beings

Старый 05.12.2012, 02:47
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 16  
Ответить с цитированием
Frost47rus
[+4 08.09.13]

Регистрация: May 2012
Сообщений: 131
Graphics не является EventDispatcher'ом.
предлагаю на этом закрыть тему.

Старый 05.12.2012, 08:47
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 17  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Graphics не является EventDispatcher'ом.
Зато Sprite является. Речь то о спрайте.

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

Теги
да , я идиот

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

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


 


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


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