![]() |
|
||||||||||
|
|||||
|
У вас тоже ручное составление пар... Как не крути, но все же как-то нужно объяснить, что один объект дружит с другим. К тому же:
protected function eNum(num:Number):void{ var arrNumG:Array = [btnG0,btnG1,btnG2,btnG3]; // Зачем каждый раз, вызывая метод eNum(), пересоздавать var arrNumB:Array = [btnB0,btnB1,btnB2,btnB3]; // массивы. А если их будет овер 1000? Выносите из за рамки данного метода. var pushObjG:Object = new Object(); // Зачем "new Object();" если Вы тут же его переопределяете var pushObjB:Object = new Object(); // на "arrNumG[num]". Лишнее телодвижение pushObjG = arrNumG[num]; pushObjB = arrNumB[num]; // ну и дальше что хотим то и делаем с ними с первым и вторым объектом, например: pushObjG.visible = false; pushObjB.visible = false; } |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 247
|
Цитата:
![]() Добавлено через 3 минуты Цитата:
![]() Идея есть только в том что у них будет что-то общее или же как я писал раньше : |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Вот.
var dictionary:Dictionary = new Dictionary(); var a:Object = { }; var b:Object = { }; for (var i:int = 0; i < 100000; i++) { a['name' + i] = new A(); b['name' + i] = new B(); dictionary[a['name' + i]] = b['name' + i]; dictionary[b['name' + i]] = a['name' + i]; trace(a['name' + i], b['name' + i]); } |
|
|||||
|
Цитата:
Класс кружка package { import flash.display.Sprite; public class Circle extends Sprite { public var myBro:Circle; public function Circle() { graphics.beginFill(Math.random() * 0xFFFFFF); graphics.drawCircle(0, 0, 20); graphics.endFill(); } } } package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.ColorTransform; public class Main extends Sprite { public function Main():void { for (var i:int = 0; i < 500; i++) //создаём 1000 кружков, только они будут перекрывать друг друга { var circle_1:Circle = new Circle(); var circle_2:Circle = new Circle(); circle_1.x = Math.random() * 800; circle_1.y = Math.random() * 600; circle_2.x = Math.random() * 800; circle_2.y = Math.random() * 600; circle_1.myBro = circle_2; // указываем кто кому брат circle_2.myBro = circle_1; addChild(circle_1); addChild(circle_2); circle_1.addEventListener(MouseEvent.CLICK, circle_click); circle_2.addEventListener(MouseEvent.CLICK, circle_click); } } private function circle_click(e:MouseEvent):void { //при клике по кружку, его брат меняет цвет var colorTr:ColorTransform = new ColorTransform(); colorTr.color = Math.random() * 0xFFFFFF; (e.currentTarget as Circle).myBro.transform.colorTransform = colorTr; } } } |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
samana пусть скажут что я подхалимничую или ещё что то, но после того, как я пол дня думал, как это сделать, я не могу не сказать, что это - ГЕНИАЛЬНО!)
|
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
samana ну естественно мы все об этом знаем!) Но вот из всех желающих помочь ТС, только Вы об этом сказать, а мы все специально всё усложняли!)
|
|
|||||
|
А как быть, если нужные объекты не могут быть унаследованы от одного класса. К примеру у меня навязчивая идея использовать Битмапы и Шейпы, если для задачи не нужен именно контейнер. Возьмем один объект статический (скажем внешняя пнг-шка), а второй - анимированый мувик. Спрайту тоже задачку можна придумать. Тогда не обойтись без внешнего, по отношению к объектам, хранилища, которое будет хранить связи между объектами.
Но и это не главное - ТС мучается из за того, что ему прийдется самостоятельно вбивать связи между объектами. И любой из предложеных нами методов не избавит его от этой каторги. Даже если инфу о связях подгружать извне какой-нибудь хмл-кой, ее все равно нужно самому подготовить. |
|
|||||
|
можно воспользоваться интерфейсами, и да, я бы передавал не ссылку на брата, а id брата, например
|
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 05:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|