|
|
|||||
Регистрация: Feb 2015
Сообщений: 10
|
Взаимодействие двух массивов
МувКлип "yacheyka"(Еxport for ActionScript, class:Yacheyka) размещен на сцене 10 раз:
//СОЗДАЕМ НА СЦЕНЕ 20 ЯЧЕЕК //создаем массив "Путь" где хранятся имена каждой ячейки var myWay:Array = new Array ; for (var i=0; i<20; i++) { var yacheyka:Yacheyka = new Yacheyka ; //помещаем экземпляры ячейки из библиотеки на сцену addChild(yacheyka); // присваиваем имя каждой ячейке yacheyka.name = "yach_" + i; //заполняем масив "Путь" именами всех ячеек; myWay.push(yacheyka.name); //trace(yacheyka.name); trace(myWay[i]); //координаты ячеек; getChildByName(myWay[i]).x = (yacheyka.width+10) * i+150; getChildByName(myWay[i]).y = 100; } //СОЗДАЕМ НА СЦЕНЕ 4 ФИШКИ //создаем массив "мои фишки" где хранятся значения каждой ячейки var myFishki:Array = new Array ; for (var j=0; j<4; j++) { var fishka:Fishka = new Fishka ; //помещаем экземпляры фишки из библиотеки на сцену addChild(fishka); // присваиваем имя каждой ячейке fishka.name = "fish_" + j; //заполняем массив "мои фишки" именами всех фишек; myFishki.push(fishka.name); //координаты фишек getChildByName(myFishki[j]).x = (yacheyka.width+10) * j+150; getChildByName(myFishki[j]).y = 100; //создание слушателй для фишек getChildByName(myFishki[j]).addEventListener(MouseEvent.MOUSE_OVER,Vibor); getChildByName(myFishki[j]).addEventListener(MouseEvent.MOUSE_OUT,Vibor2); getChildByName(myFishki[j]).addEventListener(MouseEvent.CLICK,Vibor3); } //СОЗДАЕМ НА СЦЕНЕ ИГРАЛЬНУЮ КОСТЬ; var kost:Kost = new Kost ; addChild(kost); kost.x = stage.stageWidth / 2; kost.y = stage.stageHeight / 2; //ИГРАЛЬНАЯ КОСТЬ ГЕНЕРИРУЕТ СЛУЧАЙНОЕ ЧИСЛО ОТ 1 ДО 6 kost.addEventListener(MouseEvent.CLICK, kubik); var randNum:Number = 0; function kubik(evtKubik:MouseEvent) { randNum = Math.round(Math.random() * 5 + 1); trace("случайное число"+randNum); } //УЧИМ ФИШКИ РЕАГИРОВАТЬ НА ДЕЙСТВИЯ МЫШЬЮ //функция для наведения мыши на фишки function Vibor(evtVibor:MouseEvent) { evtVibor.target.gotoAndStop(2); } //функция для убирания мыши с фишки; function Vibor2(evtVibor2:MouseEvent) { evtVibor2.target.gotoAndStop(1); } //функция клика по фишке; function Vibor3(evtVibor3:MouseEvent) { var indexMyFishki:Number; var newPosition:Number; evtVibor3.target.gotoAndStop(3); //я могу получить имя выбраной фишки:; trace("имя выбраной фишки_"+evtVibor3.target.name); //индекс в массиве "мои фишки" trace("индекс в массиве Мои фишки"+ myFishki.indexOf(evtVibor3.target.name)); //могу прибавить к индексу сгенерированное заранее число randNum indexMyFishki = myFishki.indexOf(evtVibor3.target.name); newPosition = indexMyFishki + randNum; getChildByName(myFishki[indexMyFishki]).x = getChildByName(myWay[newPosition]).x; getChildByName(myFishki[indexMyFishki]).y = getChildByName(myWay[newPosition]).y; } Последний раз редактировалось Dogonyalka; 23.02.2015 в 18:23. |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Фишка лежит в evtVibor3.target. Можно сделать так.
|
|
|||||
Регистрация: Feb 2015
Сообщений: 10
|
А что это даст? Ведь обновление идет через переменную randNum. Фактически я присваиваю выбранной фишке координаты ячейки, которую я ищу через индекс массива, в котором ячейка и находится.
|
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
|
|
|||||
Регистрация: Feb 2015
Сообщений: 10
|
callme Большое Вам спасибо!
|
Часовой пояс GMT +4, время: 22:40. |
|
« Предыдущая тема | Следующая тема » |
|
|