![]() |
|
||||||||||
|
|
|
|||||
|
Подскажите как вырезать из BitmapData области залитые определённым цветом? Не спрятать а именно вырезать. Что бы onMouseOver не срабатывал на вырезанных "дырках". Маски не помогают.
зы. Bitmap берётся из библиотеки и накладывается на Sprite. |
|
|||||
|
В таком случае handleMouseOverSprite вообще не срабатывает
Shape на хитАреа спрайта наложить не получается пишет "1067: Implicit coercion of a value of type flash.display:Shape to an unrelated type flash.display:Sprite." Если на спрайт не добавлять битмап то всё работает. var s:Sprite = new Sprite(); s.addEventListener(MouseEvent.MOUSE_OVER,handleMouseOverSprite); s.addEventListener(MouseEvent.MOUSE_OUT,handleMouseOutSprite); var bd:Bitmap = new Bitmap(new Pic(tw,th)); var sh:Sprite = new Sprite(); sh.graphics.beginFill(0x000000); sh.graphics.moveTo(0,18); sh.graphics.lineTo(36,0); sh.graphics.lineTo(37,0); sh.graphics.lineTo(73,18); sh.graphics.lineTo(73,19); sh.graphics.lineTo(37,37); sh.graphics.lineTo(36,37); sh.graphics.lineTo(0,19); sh.graphics.endFill(); s.addChild(bd); s.hitArea = sh; Последний раз редактировалось Artureg; 24.10.2007 в 01:09. |
|
|||||
|
4AM Games
|
Я не знаю каким образом ты форматировал свой код. Но нормальные люди форматируют тэгом CODE, лично я не собираюсь гробить свои глаза смотря на это творчество синим и зеленым.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Это был тэг PHP. Уже исправил.
|
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
|
|
|||||
|
Всё. Нашёл ошибку у себя в ДНК, забыл добавить спрайт с нарисованной областью к основному спрайту. Всё работает, спасибо. Вопрос закрыт.
|
|
|||||
|
4AM Games
|
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.MouseEvent;
public class HitArea extends Sprite
{
public function HitArea()
{
addChild(createButton()).addEventListener(MouseEvent.CLICK, trace);
}
private function createButton():Sprite
{
var result:Sprite = new Sprite();
result.addChild(new Bitmap(new BitmapData(200, 200, true, 0xFFFF6600)));
result.hitArea = result.addChild(createHitArea()) as Sprite;
result.buttonMode = result.useHandCursor = true;
return result;
}
private function createHitArea():Sprite
{
var result:Sprite = new Sprite();
result.graphics.beginFill(0x000000);
result.graphics.moveTo(0,18);
result.graphics.lineTo(36,0);
result.graphics.lineTo(37,0);
result.graphics.lineTo(73,18);
result.graphics.lineTo(73,19);
result.graphics.lineTo(37,37);
result.graphics.lineTo(36,37);
result.graphics.lineTo(0,19);
result.graphics.endFill();
return result;
}
}
}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Спасибо. Всё работает.
И ещё вопрос. С простым ромбом фишка с хитАреа проходит. А как быть если это сложный битмап со всякими завитушками и его нельзя повторить простыми лайнТу? |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|