|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Все может быть. Но я то смотрю на ваш код. И я вижу, что кнопка, массив и игрок создаются внутри двойного цикла каждый раз, когда значение ячейки map больше ноля. Причем игрок добавляется в список отображения и в свежесозданный массив, но массив при следующей итерации затрется новым, а с ним и единственная ссылка на данный экземпляр игрока, валяющийся на сцене.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
public function createigrok() { _array = [];//создаём массив var igrok:player = new player; _array.push(igrok); //Добавляем новый элемент в массив igrok.x = 200; igrok.y = 300; igrok.name = "ssss"; addChild(_array[IGROK_ID]); trace(igrok); } |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну теперь хоть код видно, спасибо. А это оказывается belv накосячил с циклом то)))
Протрейсите в onClicks — trace(_array[IGROK_ID]); — что напишет? Потому как выглядит уже как мистика, но это оттого, что нам не видна цельная картина, а Вы уже столько там понаписали/накопипастили, что эти куски, которые показываете, ничего не значат. Надеюсь, хоть на таймлайне там у вас никакого кода не осталось? Добавлено через 2 минуты И да, Вам действительно нужен массив, у Вас несколько игроков предполагается? Как Вы управлять ими собираетесь?
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
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 = 0;//создаём константу с номером... или лучше не 0, а 0x000000 private var _array:Array; public function Main() { btn.addEventListener(MouseEvent.CLICK, onClick); } public function clicki() { buts.addEventListener(MouseEvent.CLICK, onClicks); } public function onClicks(e:MouseEvent):void { removeChild(_array[IGROK_ID] as DisplayObject); _array.splice(IGROK_ID, 1); } public function onClick(e:MouseEvent):void { if (login.text =="1" && pass.text=="1") { this.gotoAndStop(2); createvillage(); createigrok(); } else { res.text = "Вы ввели неправильные данные"; } } public function createigrok() { _array = [];//создаём массив var igrok:player = new player; _array.push(igrok); //Добавляем новый элемент в массив igrok.x = 200; igrok.y = 300; igrok.name = "ssss"; addChild(_array[IGROK_ID]); trace(igrok); trace(IGROK_ID); } public 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); } } } } } } Трейс IGROK_ID выдаёт 0. Не пойму никак, что сделано не так. А предполагается только 1 игрок, 1 объект которым надо управлять и то с ним проблема какая-то..жуть...Трейсил не в onClicks, ибо там он ничего не показывает по нажатию |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
У Вас в мейне два кадра?? Убиться веником... Тут я не помощник.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
И чем же плохо иметь 2 кадра?
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А вот давайте наоборот, Вы мне ответите. К какому кадру относится показанный Вами код?
Я еще могу понять "запрограммировать мультфильм". Но "нарисовать в кадрах программу" это без меня.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
Че значит к какому кадру? Данный код является классом Main, этот класс просто подключается к самой флехе, со ценой и прочим
http://urls.by/1pdr |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы, может, где-то читали или слышали, как флэш-плеер работает с swf-файлами?
Особенность флэш-технологии в потоковости: плеер может показывать люблй кадр, который уже загрузился. Допустим, у вас мультик из 600 кадров. Так вот, в swf они расположены последовательно, и как только загрузится первый кадр, плеер его отобразит. Загрузится второй — отобразит второй. Примерно как в gif-анимации. Поэтому во всяких Масянях принято было делать предзагрузчик и после него кнопку Старт, чтобы при медленном интернете зритель не смотрел на слоумоушн, а сходил поставил чай и после полной загрузки всех кадров наслаждался нормальным фпс. Теперь попробуйте представить код Документ-класса, привязанного к мувику из 600 кадров. Очевидно, что конструктор этого класса должен отработать еще ДО показа самого первого кадра. При этом не то что 600-го, а даже второго кадра еще нет в плеере вообще. Как Вы думаете, Вы можете из этого кода обратиться к птичке, которая пролетает по экрану в кадрах с 312-го по 379-й? Можете повесить на нее слушатель клика, например?
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
Почему нет? Обычная птичка, дать ей имя и в коде делать что угодно с ней, даже тот же самый клик Оо. Я не могу понять к чему вы это всё
|
Часовой пояс GMT +4, время: 22:40. |
|
« Предыдущая тема | Следующая тема » |
|
|