Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.10.2012, 23:20
says вне форума Посмотреть профиль Найти все сообщения от says
  № 1  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
Arrow Невозможно присвоить нереференсное значение

Двс.
Делаю исключения совпадающих координат в цикле while
Выдает в условии ошибку

Код AS3:
package{
	import flash.events.MouseEvent;
	import flash.display.MovieClip;
	import flash.display.Sprite; 
	//import flash.text.TextField;
	//import flash.utils.getTimer;
 
		public class Saper extends Sprite {
		private var n:uint=0;
		private var m:int= 0;
		private var k:int = 0;
		private var arr_btn:Array = new Array(); //координаты кнопок
		private var arr_mine:Array = new Array(); //координаты мин
		private var mine:Mine = new Mine();//переменная мина 
		private var a:uint = 0;
		private var ax:uint = 0; //перемення для цикла в исключениях
		private var bx:uint = 2;
		private var cx:uint = 1;
		private var dx:uint=3;
 
 
			public function Saper(){
				for (var i:int = 0 ; i<10;i++){
					n=0;
					for(var j:int =0; j<10;j++){
						var btn:Btn = new Btn();
						addChild(btn);
 
						btn.x = n;
						btn.y= m;
						arr_btn.push(btn);
						btn.addEventListener(MouseEvent.CLICK,func_click);
						n+=30;
					}
					m+=30;
 
				}
				trace(arr_btn);
 
				for(var k:int=0;k<10;k++){
					var mine = new Mine();
					addChild(mine);
					n= 30*Math.floor(Math.random()*10);
					m = 30*Math.floor(Math.random()*10);
					n = n - n % 30;
					m = m - m % 30;
					trace(n);
					trace(m);
					mine.x=n;
					mine.y=m;
				 	arr_mine.push(n,m);
					trace(arr_mine);
					//setChildIndex(mine,0);//завернул мини вниз
					while((arr_mine[a+ax] == arr_mine[a+bx]) && (arr_mine[a+cx]  == arr_mine[a+3])){ //<===== 1050: Cannot assign to a non-reference value. а вот и ошибка.
						k--;
						continue;
					}
					ax=ax+2;
					bx=bx+2;
					cx=cx+2;
					dx=dx+2;
				}
			}
 
			private function func_click (e:MouseEvent):void{ 
			var btn:Btn = e.currentTarget as Btn;
				if (btn){
					removeChild(btn);
				}
			}
	}
}


Последний раз редактировалось says; 25.10.2012 в 00:40.
Старый 24.10.2012, 23:25
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 2  
Ответить с цитированием
Krusty

Регистрация: Jul 2007
Сообщений: 393
Скобки расставьте внутри while, скорее всего неверен порядок выполнения операций или сами операции не те.
ЗЫ. ОЧЕНЬ плохо так писать.

Старый 24.10.2012, 23:36
says вне форума Посмотреть профиль Найти все сообщения от says
  № 3  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
скобки помогли,но почему то не работает цикл вайл вообще...надежда была на повтор внешнего цикла for .
почему плохо так писать?

Старый 24.10.2012, 23:47
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 4  
Ответить с цитированием
Krusty

Регистрация: Jul 2007
Сообщений: 393
Что значит не работает?
Плохо, потому что я(как и все) понять не могу, что вы хотите в том цикле перебирать. То ли вы сравниваете, и знак = и == перепутали. То ли вы присвоение делаете. То ли у вас && (И) то ли битовые операции по маске.
А переменные не должны быть a ax bx cx, читать это невозможно.

Старый 25.10.2012, 00:40
says вне форума Посмотреть профиль Найти все сообщения от says
  № 5  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
Поправил.Но так все-равно не работает.
В смысле работает не так как хотелось бы.

Старый 25.10.2012, 00:41
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 6  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Ошибка или то, что задумали?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:35.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
не референсное значение

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:35.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.