|
|
|||||
Цитата:
с такой системой работать на порядок легче! потому что в нумерации соблюдается двумерность, которую можно использовать как шахматное поле. |
|
|||||
хочу спросить на счёт double Click
вот изначально рабочий код package { import flash.display.*; import flash.events.*; public class Parse extends MovieClip { public function Parse() { var item:Item = new Item(); addChild(item); } } } import flash.display.*; import flash.events.*; class Item extends MovieClip { private var roundRect:Sprite = new Sprite(); private var mc:Sprite = new Sprite(); public function Item ():void { roundRect.addChild(drawRoundRect(0xEEEEEE)); roundRect.doubleClickEnabled=true; roundRect.addEventListener(MouseEvent.DOUBLE_CLICK, onDblClick); addChild(roundRect); } private function onDblClick(evt:MouseEvent):void { trace("onDblClick"); } private function drawRoundRect(color:Number):Shape { var child:Shape = new Shape(); child.graphics.beginFill(color); child.graphics.drawRoundRect(0, 0, 166, 23, 20); child.graphics.endFill(); return(child); } } public function Item ():void { roundRect.addChild(drawRoundRect(0xEEEEEE)); addChild(roundRect); doubleClickEnabled=true; addEventListener(MouseEvent.DOUBLE_CLICK, onDblClick); } как нужно делать правильно? |
|
|||||
Cделай класс Item унаследованный от Sprite(), пихай туда все что хочешь, а потом:
если захочешь написать обработчик внутри, то пиши this.addEventListener(...); Последний раз редактировалось vapes; 31.07.2007 в 14:33. |
|
|||||
мне для упрощения работы хотелось сделать как раз второй вариант, но
второй вариант не сработал ни this.addEventListener(...); ни просто addEventListener(...); самый более меннее нормальный и рабочий вариант оставил первый, с той лишь разницей что делаю hit (с hit.alpha=0) Зону внутри Item() и на неё вешаю все Events. кстати ЛОЛ - я сделай класс Item унаследованный от Sprite(), но внутри была анимация (движение текста) всё работает Оо теперь вообще непонимаю в чём разница между MovieClip и Sprite (уже делал пост на эту тему но очевидных отличий так и не вижу), методы и свойства всё те же. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
У Sprite нет методов MovieClip и он меньше памяти потребляет.
|
|
|||||
Цитата:
кстати тут в тупик попал с этими слоями... дело в том что я хотел при нажатии на какой нить из Item(); делать его поверх всех остальных... однако делать это хотел из самого Item(); пока ещё думаю как это сделать... можно ли узнавать numChildren основного класса из Item(); ? |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Я говорю про методы play, stop, gotoAndStop и т.п.
Узнать numChildren можно обратившись к parent. |
|
|||||
я делал так (счас тожа пытаюсь програмить на ас3 с использованием флексовского фреймворка):создавал массив Item'ов добавлял их в основной класс, кажый Item хранит в себе индекс массива. А потом на mouseClick Item диспатчил Event где еще передавал свой индекс. Подписавшись на этот Event основной класс вытаскивал его поверх всех.
|
|
|||||
клёво! для будущего поколения напишу что получилось
1) чтобы узнать numChildren - достаточно внутри вызываемой функции побочного класса написать parent.numChildren 2) а чтобы узнать child номер слоя самого экземпляра (в моём случае Item()) достаточно написать parent.getChildIndex(this) а вот что в конечном счёте надо было мне спасибо за помощь! =) копаю дальше.... Последний раз редактировалось DRAGOnoid; 31.07.2007 в 17:14. |
|
|||||
Здравствуйте! Вот принёс ещё несколько вопросов, если позволите..
первое что интересует - я хочу задействовать колёсико мыши (или он же Scroll). За эту функцию отвечает MouseEvent.MOUSE_WHEEL. Хочу отслеживать на всей флешке, пишу: addEventListener(MouseEvent.MOUSE_WHEEL, m); private function m (event:MouseEvent):void { trace(event); } Вот собственно и первый вопрос - как мне сделать нормальный MOUSE_WHEEL? Второе что интересует, так это всё та же больная тема с множеством муклипов на сцене самый хороший способ это создать массив: а потом просто добавлять предмет привязываясь к нему: var key = objects.length; objects[key] = new Item(key, 6, 30, 0.3, 0.1); objects[key].x=600; objects[key].y=130; field.addChild(objects[key]); Нормальный способ самоудаления? или есть что по лучше? Последний раз редактировалось DRAGOnoid; 04.08.2007 в 14:46. |
Часовой пояс GMT +4, время: 00:17. |
|
« Предыдущая тема | Следующая тема » |
|
|