![]() |
|
||||||||||
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
сразу скажу, что в удалении/помещении объектов на сцену я не сильно разбираюсь.
вот код : import flash.events.MouseEvent; var list_of_ships:Number = new Number var ships:Array = [new normal_ship()] list_of_ships = 0 button_normal_ship.addEventListener(MouseEvent.CLICK, button_normal_ships_) addEventListener(Event.ENTER_FRAME, ship) for( var i:int = 0; i < ships.length; i++ ) { var mc = ships[i] ships[0].name = "normal_ship_" } function ship (e:Event):void { if (list_of_ships == 1) { YOU.addChild (ships[0]) YOU.getChildByName("normal_ship_").rotation = 90 } if (list_of_ships == 0) { YOU.removeChild () \\ в этой строке проблема } } function button_normal_ships_ (e:MouseEvent):void { if (list_of_ships == 1) { list_of_ships = 0 } else { list_of_ships = 1 } } |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
спасибо, всё хорошо, тока пишет -
ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта. at flash.display: isplayObjectContainer/removeChild()at shop_and_battle_fla::MainTimeline/ship() как исправить ? вот исходник - |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Можешь изменить условие так, проверив есть-ли данный объект в YOU:
ой не успел |
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
большое спасибо !
Добавлено через 7 минут а если будет много объектов в массиве ships? нужно будет делать много if или много условий? |
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Цитата:
//Функция, которая содержит цикл, который обрабатывает переменную с дисками от диского оружия ведроида: function workArrayDiskVedroid() { for(var i:Number = 0; i < arrayDiskVedroid.length; i++) { //Вызываю функция, которая отвечает за движение диска: movedDisk(arrayDiskVedroid[i],i); } } //Функция, которая отвечает за изменение координат у диска: function movedDisk(argument,i) { //Если координата x у диска больше, чем -1000, то: if(argument.x > -1000) { //Изменяю координату x у диска: argument.x -= speedDiskVedroid * Math.cos(arrayAngleDisk[i] * (Math.PI / 180)); //Изменяю координату y у диска: argument.y += speedDiskVedroid * Math.sin(arrayAngleDisk[i] * (Math.PI / -180)); //Изменяю угол поворота у диска: argument.rotation += 10; } //Если диск находится в области НЛО, то: if(argument.x < ufo.x + ufo.width / 2 && argument.x > ufo.x - ufo.width / 2 && argument.y < ufo.y + ufo.height && argument.y > ufo.y) { //Если на сцене есть диск, то: if(stage.contains(argument)) { //Удаляю его сцены: removeChild(argument); } } } |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Цитата:
|
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
большое спасибо, что вы мне помогли, все великолепно но...
вот я добавил в код(в массив) ещё один объект, чтоб по нажатию на кнопку, он появлялся на сцене а объекты, которые были до него удалились. вот код: import flash.events.MouseEvent; var list_of_ships:Number = new Number var ships:Array = [new normal_ship(), new transport_ship()] list_of_ships = 0 button_normal_ship.addEventListener(MouseEvent.CLICK, button_normal_ship_) buton_transport_ship.addEventListener(MouseEvent.CLICK, button_transport_ship_) addEventListener(Event.ENTER_FRAME, ship) for( var i:int = 0; i < ships.length; i++ ) { var mc = ships[i] ships[i].name = "ships_" if (list_of_ships == 0 && YOU.getChildByName(ships[i].name)) { YOU.removeChild (ships[i]) } } function ship (e:Event):void { if (list_of_ships == 1) { YOU.addChild (ships[0]) YOU.getChildByName("ships_").rotation = 90 } if (list_of_ships == 2) { YOU.addChild (ships[1]) YOU.getChildByName("ships_").rotation = 90 } for(var i:int = 0; i < ships.length; i++) { if (list_of_ships == 0 && YOU.getChildByName(ships[i].name)) { YOU.removeChild (ships[i]) } } } function button_normal_ship_ (e:MouseEvent):void { if (list_of_ships == 1) { list_of_ships = 0 } else { list_of_ships = 1 } } function button_transport_ship_ (e:MouseEvent):void { if (list_of_ships == 2) { list_of_ships = 0 } else { list_of_ships = 2 } } |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
import flash.display.*; import flash.events.*; button_normal_ship.addEventListener(MouseEvent.CLICK, this.button_normal_ship__onClick); buton_transport_ship.addEventListener(MouseEvent.CLICK, this.buton_transport_ship__onClick); var ships:Array = [ new normal_ship(), new transport_ship() ]; var shipAddedFlags:Array = [ false, false ]; function toggleShip( index:int ) : void { var d:DisplayObject = DisplayObject(this.ships[index]); if (this.shipAddedFlags[index]) { if (d.parent == YOU) YOU.removeChild(d); this.shipAddedFlags[index] = false; } else { YOU.addChild(d); this.shipAddedFlags[index] = true; } } //-------------------- // EVENT HANDLERS //-------------------- function button_normal_ship__onClick( e:MouseEvent ) : void { this.toggleShip(0); } function buton_transport_ship__onClick( e:MouseEvent ) : void { this.toggleShip(1); }
__________________
Загружаем картинки, минуя ошибки безопасности |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|