|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2010
Сообщений: 13
|
Неверный размер объекта при создании экземпляра
Здраствуйте уважаемые флешеры! Поясните пожалуйста, в чем проблема.
Я описал класс module.as, в котором я отрисовываю картинку pic.png, размер которой 32х32. В основном классе Main.as, при создании экземпляра класса module.as размеры данного объекта равны 101. Проблема в том что я ставлю на этот объект событие OVER и OUT, которые должны срабатывать при попадании курсора мыши на картинку(размер которой 32), а события эти срабатыват когда курсор еще не вошел на картинку. Это важно потому что таких объектов будет несколько и стоять они будут рядом, тогда получается что последний добавленный объект будет закрывать предыдущий. Если я пытаюсь изминить размер данного объекта на 32х32, то в этом случае искажается картинка (она ужимается). А это очень не хорошо =(. Подскажите как решить проблему? скрипт Module.as package modelObjects { import flash.display.MovieClip; import flash.events.MouseEvent; import flash.display.Bitmap; import flash.media.Sound; public class Module extends MovieClip { [Embed (source = "../images/pic.png")] [Bindable] public var Img:Class; public function Module(type:String) { var pic:Bitmap; pic = new Img(); this.addChild(pic); this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); } private function mouseOverHandler(e:MouseEvent):void { trace("IN"); } private function mouseOutHandler(e:MouseEvent):void { trace("OUT"); } } } package { import flash.display.MovieClip; import flash.events.Event; import modelObjects.Module; public class Main extends MovieClip { public var mdl:Module; //объект игра public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point mdl = new Module(); mdl.x = 300; mdl.y = 300; this.addChild(mdl); } } } Последний раз редактировалось C0ffe1n; 30.07.2010 в 14:33. |
|
|||||
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 C0ffe1n:
Цитата:
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
Lorem ipsum
|
ты конечно разберись, что за фигня, но пока, может, просто повесишь обработчики мыша не на мувик, содержащий Bitmap, а на сам Bitmap?
__________________
Поймай яблоко 2! |
|
|||||
Регистрация: Apr 2010
Сообщений: 13
|
Хемуль
да картинка точно 32х32 а если к примеру напишу в main.as то выдает 101. При чем я проверял, размер 101 у всех создаваемых объектов (я так понимаю что размер 101х101 определяется по умолчанию) Если добавить трайсе в Module.as то выводит значение 32. Zebestov Может быть это и выход, надо пробывать, но все же это концептуальная проблема. P.S. Я использую FlashDevelop и Flex SDK |
|
|||||
Регистрация: Apr 2008
Сообщений: 79
|
у меня все ок, тут ошибка
уж тогда так ну или передавать параметр type |
|
|||||
Регистрация: Apr 2010
Сообщений: 13
|
gloomyBrain
чет не понял тебя, переведи PgeorgyV а ты попробуй наводить курсор мышки на картинку рядом (справа или снизу), и ты увидешь что обработчик события OVER и OUT все равно срабатывают |
|
|||||
Lorem ipsum
|
точно.
__________________
Поймай яблоко 2! |
|
|||||
Регистрация: Apr 2008
Сообщений: 79
|
Ну я как бы попробовал, sdk 4.1.0.16076 + у нас разные картинки, может заюзать какую-нить другую?
|
Часовой пояс GMT +4, время: 09:38. |
|
« Предыдущая тема | Следующая тема » |
|
|