Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   loader и useHandCursor (http://www.flasher.ru/forum/showthread.php?t=111804)

Alexsas 08.05.2008 16:17

loader и useHandCursor
 
Код:

var loader:Loader = Loader(e.target.loader);
loader.buttonMode = true; // тут выдает что нельзя
loader.useHandCursor = true; // и тут.
loader.addEventListener(MouseEvent.CLICK, ClickHandler);

как мне обойти это?

fljot 08.05.2008 16:36

если нельзя, значит нельзя
после первой строчки оттрейсите переменную loader, наверняка null

etc 08.05.2008 16:37

loader.content

Alexsas 12.05.2008 07:51

__etc

Код:

1119: Access of possibly undefined property buttonMode through a reference with static type flash.display:DisplayObject.

etc 12.05.2008 09:47

Правильно, потому что у DisplayObject нет такого свойства. Зато оно есть у его наследников и ты сделал одну и самых распространённых ошибок — забыл привести к нужному типу.

Alexsas 12.05.2008 13:30

а к какому типу мне это надо привести?

badun 12.05.2008 13:58

можно еще loader засунуть в sprite

etc 12.05.2008 14:15

Цитата:

Сообщение от Alexsas (Сообщение 738637)
а к какому типу мне это надо привести?

1. Открыть хелп;
2. Написать buttonMode;
3. Найти класс, в котором впервые объявляется это свойство.

Alexsas 12.05.2008 15:52

Я попробовал вот так:
Код:

Sprite(loader).useHandCursor = true;
и так
Код:

Sprite(loader.content).useHandCursor = true;
выводит:
Код:

TypeError: Error #1034: Type Coercion failed: cannot convert ... at main/::loaded()

etc 12.05.2008 16:11

Второй способ верен, но в том случае, если данное действие производится после загрузки контента. И в данном случае надо производить не конвертацию типа, а оператор «as».

Alexsas 12.05.2008 16:33

чего то я туплю под вечер.. подскажите где гвоздь..

Код:

private function loaded(e:Event) {
                        var loader:Loader = Loader(e.target.loader);
                        var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo);
                        loader.x = X;
                        loader.y = Y;
                        (loader.content as Sprite).buttonMode  = true ;
                        (loader.content as Sprite).useHandCursor = true ;
                        loader.addEventListener(MouseEvent.MOUSE_OVER, OverHandler);
                        loader.addEventListener(MouseEvent.MOUSE_OUT, OutHandler);
                        loader.addEventListener(MouseEvent.CLICK, ClickHandler);
                        }

выдает

Код:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
        at main/::loaded()

трэйс контента лоадера выдает [object bitmap] — значит картинка уже в нем сидит...

etc 12.05.2008 16:44

Отличные строчки :D :
Код:

var loader:Loader = Loader(e.target.loader);
                        var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo);

Что помешало написать:

Код:

var info:LoaderInfo = event.target as LoaderInfo;
var loader:Loader = info.loader;

?

Alexsas 12.05.2008 16:49

__etc спасибо за правильность.

но как быть с:
Код:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
        at main/::loaded()

?

badun 12.05.2008 17:01

надо дождаться загрузки контента, а до тех пор он null
тебе проще всего будет запихнуть твой loader в Sprite, и ему уже прописывать что нужно, тогда не надо дожидаться загрузки

Alexsas 12.05.2008 17:18

badun

ну по идее моя функия срабатывает после окончательной загрузки контента...

etc 12.05.2008 17:21

А загружается именно swf?

Alexsas 13.05.2008 08:23

Цитата:

А загружается именно swf?
нет картинка...

etc 13.05.2008 09:34

Цитата:

Сообщение от Alexsas (Сообщение 738837)
нет картинка...

С этого и надо было начинать. content в таком случае является Bitmap, у которого нет указанных свойств. Надо перекладывать либо весь content в Sprite, либо loader.

Alexsas 13.05.2008 10:15

спасибо


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

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