![]() |
|
||||||||||
|
|||||
|
Цитата:
с такой системой работать на порядок легче! потому что в нумерации соблюдается двумерность, которую можно использовать как шахматное поле. |
|
|||||
|
хочу спросить на счёт 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,787
|
У Sprite нет методов MovieClip и он меньше памяти потребляет.
|
|
|||||
|
Цитата:
кстати тут в тупик попал с этими слоями... дело в том что я хотел при нажатии на какой нить из Item(); делать его поверх всех остальных... однако делать это хотел из самого Item(); пока ещё думаю как это сделать... можно ли узнавать numChildren основного класса из Item(); ? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Я говорю про методы 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:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|