PDA

Просмотр полной версии : изменить курсор


megapup
01.03.2012, 22:00
нужно сделать курсор hand над всем роликом

у stage нету свойств для изменения курсора
у Sprite есть buttonMode и useHandCursor однако непонятно как растянуть его на 100%

подскажите как сделать?

*размер ролика заранее не известен

Mukon
01.03.2012, 22:27
создаем прозрачный прямоугольник по ширине и высоте stage, например:

var rect:Sprite = new Sprite();
rect.graphics.drawRect(0,0,0,0);
rect.alpha = 0;
rect.height = stage.height;
rect.width = stage.width;
rect.buttonMode = true;
addChild(rect);


P.S. Не забудьте поставить плюс

megapup
01.03.2012, 22:31
не забуду :)
а ежели stage.height/width поменяются?
евент какой нибудь случается после изменения размеров stage?

Mukon
01.03.2012, 22:35
Если надо, то можно прослушать событие изменения размеров stage c помощью Event.CHANGE

megapup
01.03.2012, 22:36
спасибо, будем пробовать.

illuzor
01.03.2012, 22:38
Mukon, где beginFill, где endFill?
stage.height/stage.width это неправильно.
Надо вот так stage.stageWidth/stage.stageHeight
И легче сразу рисовать по размерам сцены, а не растягивать.
А выпрашивать плюсы, особенно за неработающие советы, это глупо.

евент какой нибудь случается после изменения размеров stage? Event.RESIZE. вешается на stage

TanaTiX
01.03.2012, 22:38
Тут (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/ui/MouseCursor.html#BUTTON) лучше почитай.
А то изменение размеров stage - система с слушателями. Если над этим шейпом будут другие объекты - всем тоже повесить такое свойство. А если делать прозрачный спрайт поверх всего - отказывают мышиные события. Плохой совет, не ставь +

Wolsh
01.03.2012, 22:45
1. Mouse.cursor = flash.ui.MouseCursor.HAND;
2. Stage не диспатчит событие Event.CHANGE. Зато у него есть специальное событие ресайза.
stage.addEventListener(Event.RESIZE, handlerResize);

Mukon
01.03.2012, 22:51
Писал на скорою руку, хотелось побыстрее помочь что бы меня не опередили :). Теперь буду лучше думать.
Извините.

megapup
01.03.2012, 22:55
да, я уже заметил, stage.width/height возвращает ноль, CHANGE не срабатывает, рановато плюсы поставил, ну да ладно.
Mouse.cursor заработало после переключения с 9 на 10 flashplayer в пропертисах проекта :)
всем спасибо

Wolsh
01.03.2012, 23:16
stage.width/height возвращает нольstage.stageWidth, stage.stageHeight – размеры окна плеера.
stage.width, stage.height – размеры стейдж как контейнера объектов, то есть размеры области, занимаемой содержимым.