Показать сообщение отдельно
Старый 11.02.2014, 02:15
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 13  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Код AS3:
package 
{
 
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.events.Event;
import flash.display.DisplayObject;
import flash.display.Stage;
import flash.display.Sprite;
public class Main extends MovieClip
 
{
 public var map:Array = [
     	[1,1,1,1,1,1,1,1,1,1,1,1],
     	[1,0,0,2,1,1,1,1,1,2,0,1],
     	[1,0,0,0,1,1,1,1,1,0,0,1],
     	[1,0,2,0,0,1,1,1,1,0,1,1],
     	[1,0,1,0,0,0,1,2,0,0,0,0],
     	[1,0,0,1,0,0,1,0,0,0,0,0],
     	[1,1,1,1,0,0,1,0,0,1,1,1],
     	[1,0,0,0,0,0,0,0,0,0,0,1],
     	[1,1,1,1,1,1,1,1,1,1,1,1],
     	];
 
    public var size:uint = 50;
   private const IGROK_ID:uint = 0x000000;//создаём константу с номером... или лучше не 0, а 0x000000
		private var _array:Array;
 public function Main()
 {
 
 	btn.addEventListener(MouseEvent.CLICK, onClick); }
 
 private function onClick(e:MouseEvent):void{
 
     if (login.text =="login" && pass.text=="pass"){
 	this.gotoAndStop(2);
 
	createvillage(); 
     }
 else
   {
   res.text = "Вы ввели неправильные данные";
 	}
 
 
   function createvillage()
      {
for (var i:uint=0; i<map.length; i++)
 	{
   for (var j:uint=0; j<map[i].length; j++)
   {
   	if (map[i][j] > 0)
   	{
     var obj:village = new village;
     obj.x = j*size;
     obj.y = i*size;
     obj.gotoAndStop(map[i][j])
     addChild(obj);
 
     Constants.stageRef=stage;
	 _array = [];//создаём массив
     var igrok:player = new player;
	 _array.push(igrok); //Добавляем новый элемент в массив
     igrok.x = 200;
     igrok.y = 300;
     addChild(_array[IGROK_ID] as DisplayObject);
     trace(igrok);
 
	 var buts:button = new button;
	 buts.x = 277;
	 buts.y = 540;
	 buts.name = "btns";
	 addChild(buts);
	 buts.addEventListener(MouseEvent.CLICK, onClicks);
 
 }
     function onClicks(e:MouseEvent):void{
	removeChild(_array[IGROK_ID] as DisplayObject);
 
			_array.splice(IGROK_ID, 1);//удаляем ссылку из массива
     }
	 }
	 }
	 }
   }
 
}
}
Попробовал сделать по аналогии. Выдаёт TypeError: Error #2007: Параметр child не должен быть равен нулю.
at flash.display:isplayObjectContainer/removeChild()
at MethodInfo-8()
К чему я вообще всё это начал. Просто по нажатию на кнопку, должен быть возврат из 2 кадра в 1, но когда он переходит в 1 кадр, все объекты 1ого кадра накладываются поверх созданных объектов второго кадра. А надо чтобы 1 кадр был только с теми объектами, которые в нем находятся(исключая те, что во втором, а вообще если после перехода снова во второй кадр всё останется на свой местах(тобишь если сдвинули объект, перешли в первый кадр, а потом снова вернулись во второй, объект был на том месте, куда его сдвинули), но я не знаю как это проще реализовать, поэтому попытался просто удалить все объекты из второго кадра, при переходе в 1