|
|
|||||
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
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; 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; public var arrayIgrok: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; var igrok:player = new player; igrok.x = 200; igrok.y = 300; igrok.name = "player"; addChild(igrok); arrayIgrok.push(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(MovieClip(arrayIgrok[0])); arrayIgrok.splice(0, 1); } } } } } } |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
package { import flash.display.DisplayObject; import flash.display.Sprite; public class TestClass extends Sprite { private var _array:Array; public function TestClass() { _array = [];//создаём массив var sprite:Sprite = new Sprite(); _array.push(sprite);//помещаем туда созданный объект addChild(_array[0] as DisplayObject);//так можно добавить элемент массива, если хочется } private function removeElementsArray():void { removeChild(_array[0] as DisplayObject);//так удалить //но так нужно помнить номера элементов, что сложно //по этому можно ... } } } package { import flash.display.DisplayObject; import flash.display.Sprite; public class TestClass extends Sprite { private const IGROK_ID:uint = 0;//создаём константу с номером... или лучше не 0, а 0x000000 private var _array:Array; public function TestClass() { _array = [];//создаём массив var igrok:Sprite = new Sprite(); _array.push(sprite);//помещаем туда созданный объект addChild(_array[IGROK_ID] as DisplayObject);//так можно добавить элемент массива, если хочется } private function removeElementsArray():void { removeChild(_array[IGROK_ID] as DisplayObject);//так удалить //но так нужно помнить номера элементов, что сложно //по этому можно ... _array.splice(IGROK_ID, 1);//удаляем ссылку из массива } } } |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
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);//удаляем ссылку из массива } } } } } } } at flash.display:isplayObjectContainer/removeChild() at MethodInfo-8() К чему я вообще всё это начал. Просто по нажатию на кнопку, должен быть возврат из 2 кадра в 1, но когда он переходит в 1 кадр, все объекты 1ого кадра накладываются поверх созданных объектов второго кадра. А надо чтобы 1 кадр был только с теми объектами, которые в нем находятся(исключая те, что во втором, а вообще если после перехода снова во второй кадр всё останется на свой местах(тобишь если сдвинули объект, перешли в первый кадр, а потом снова вернулись во второй, объект был на том месте, куда его сдвинули), но я не знаю как это проще реализовать, поэтому попытался просто удалить все объекты из второго кадра, при переходе в 1 |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
А Вы видите этот объект до того, как удаляете?
|
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
Akopalipsis,да, этим объектом в роли igrok надо управлять, там просто кружочек который двигается по разными направлениям по нажатию клавиш. Сам кружочек - символ, к котором подключен класс player
|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Если у Вас всего два класса и Вы этот объект больше не где не не добавляете в список отображения, то ошибки быть не может, ну или я её не вижу. Ждите, может кто-то заметит.
|
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
Есть еще класс
package { import flash.display.Stage; public class Constants { public static var stageRef; public function Constants() { } } } at player() at MethodInfo-9() at Main/onClick() |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
я имел ввиду, что если бы в другом классе Вы сделали addChild(igrok), то ошибка была бы правильной, так-как контейнер сменился. Но если Вы addChild(igrok) не делаете в другом месте, то я не знаю..
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Я вообще не понял зачем там создается 100500 игроков и столько же кнопок.
А за функцию внутри функции вообще бы расстрелял.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
В смысле 100500 игроков и кнопок? Там создается только 1 кнопка и 1 игрок.
|
Часовой пояс GMT +4, время: 01:18. |
|
« Предыдущая тема | Следующая тема » |
|
|