
Код 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 не должен быть равен нулю.
К чему я вообще всё это начал. Просто по нажатию на кнопку, должен быть возврат из 2 кадра в 1, но когда он переходит в 1 кадр, все объекты 1ого кадра накладываются поверх созданных объектов второго кадра. А надо чтобы 1 кадр был только с теми объектами, которые в нем находятся(исключая те, что во втором, а вообще если после перехода снова во второй кадр всё останется на свой местах(тобишь если сдвинули объект, перешли в первый кадр, а потом снова вернулись во второй, объект был на том месте, куда его сдвинули), но я не знаю как это проще реализовать, поэтому попытался просто удалить все объекты из второго кадра, при переходе в 1