Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Статьи (http://www.flasher.ru/forum/forumdisplay.php?f=101)
-   -   ActionScript 3 с нуля (http://www.flasher.ru/forum/showthread.php?t=92301)

vapes 06.08.2007 12:56

1. В самом первом классе попробуй написать
Код:

stage.addEventListener(...)
ну и соответственно обработчик к этому событию.
2. Я тоже сначала делал через массив, где каждый элемент хранил свой индекс, а потом подумал: а если у меня будет 2 массива, то и в одном и во втором будут элементы с одинаковыми индексами. Поэтому у меня сейчас все элементы хранят в себе свое уникальное имя и без массива.

DRAGOnoid 06.08.2007 13:58

stage.addEventListener частично решил проблему...
скролл срабатывает всё ещё при клике, однако теперь срабатывает и на пустое место. (т.е. ненадо кликать специально на предмет)
может тут надо что то типа setScroll сделать где то? а то очень похоже на тот случай когда текстовое поле не активно пока ты его не активируешь (бональным кликом на него)

vapes 06.08.2007 14:04

Зн я так понимаю скролл будет срабатывать, когда ты обьекту передашь фокус (кликнув по нему). Почитай че-нить про фокус и как его програмно передавать, потом и со мной поделишся :)

DRAGOnoid 06.08.2007 14:39

оказывается проблема уже обсуждалась ранее на форуме
http://www.flasher.ru/forum/showthre...ighlight=focus
только я чё то не пойму как в нашем случае вызвать этот focus()

etc 06.08.2007 14:45

С помощью JavaScript.

vapes 06.08.2007 14:50

А если флешка локальная?

etc 06.08.2007 14:52

А там такого не бывает.

15000

DRAGOnoid 06.08.2007 15:24

с юбилеем ;)
вот у меня как раз в CS3 такое....
а как вообще теоретически включить этот focus() ?
я написал stage.focus; ошибки нет но и эффекта тоже.

etc 06.08.2007 15:27

Если речь про работу в IDE, то это одно. Если не работает в окне standalone-плеера, то исходник в студию.

DRAGOnoid 06.08.2007 17:34

вот наглядный пример :
рисует квадрат который по идее по скролу должен масштабироваться:

Код:

package {
        import flash.display.*;
        import flash.events.*;

        public class Scale extends Sprite {
                private var field:Sprite = new Sprite();
               
                public function Scale() {
                        addChild(field);
                        field.addChild(doDrawRect());
                        stage.addEventListener(MouseEvent.MOUSE_WHEEL, m);
                }
                private function m (event:MouseEvent):void {
                        field.scaleX += 0.01*event.delta;
                        field.scaleY += 0.01*event.delta;
                        trace(event.delta);
                }
                private function doDrawRect():Shape {
            var child:Shape = new Shape();
                    child.graphics.beginFill(0x0066FF);
                    child.graphics.lineStyle(2, 0xCCCCCC);
                    child.graphics.drawRect(0, 0, 100, 100);
                    child.graphics.endFill();
            return(child);
        }
        }
}

масштабируется только при клике.


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

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