Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблемы 3D и MouseEvents (http://www.flasher.ru/forum/showthread.php?t=120310)

Alex Nomad 16.01.2009 22:55

Проблемы 3D и MouseEvents
 
Этот код прекрасно работает, выдавая желаемые "circle click" в output'е при нажатии мышкой на круг.
Но как только убрать комментирование this.rotationX=-45, то данный эффект пропадает.
Если быть точнее, то экспериментируя понял, что тыкать надо уже в молоке (а не в круг), чтобы это событие сработало. Достаточно даже сделать this.rotationX=0, чтобы получить подобный эффект.

Кто сталкивался?

Adobe Flash 10 CS4.
Код AS3:

public class Test3DMouse extends Sprite {
                var circ:Sprite;
 
                function Test3DMouse() {
                        circ = new Sprite();
                        circ.graphics.beginFill(0xFF0000);
                        circ.graphics.lineStyle(2);
                        circ.graphics.drawCircle(150, 150, 10);
                        circ.graphics.endFill();
                        circ.mouseEnabled=true;
                        circ.addEventListener(MouseEvent.CLICK, clickHandler);
                        this.addChild(circ);
 
                        //this.rotationX=-45;
                }
 
                function clickHandler(e:MouseEvent){
                                trace("circle click");
                }
 
        }//class


Alex Nomad 03.02.2009 18:47

Приношу извинения за навязчивость, но никакие поиски и попытки решить проблему не оказались успешными.

TERRORist 03.02.2009 19:01

мне если не ошибаюсь помогало добавление в отдельный контейнер:
Код AS3:

public class Test3DMouse extends Sprite {
                var circ:Sprite;
                var cc:Sprite;
                function Test3DMouse() {
                        cc = new Sprite();
                        circ = new Sprite();
                        circ.graphics.beginFill(0xFF0000);
                        circ.graphics.lineStyle(2);
                        circ.graphics.drawCircle(150, 150, 10);
                        circ.graphics.endFill();
                        circ.mouseEnabled=true;
                        circ.addEventListener(MouseEvent.CLICK, clickHandler);
                        сс.addChild(circ);
                        this.addChild(сс);
                        сс.rotationX=-45;
                }
 
                function clickHandler(e:MouseEvent){
                                trace("circle click");
                }
 
        }//class


Alex Nomad 03.02.2009 19:51

Да, так и есть.
Видимо нельзя основному классу устанавливать свойства 3D преобразований


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

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