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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.05.2012, 03:46
Fartoviy_Spec вне форума Посмотреть профиль Отправить личное сообщение для Fartoviy_Spec Найти все сообщения от Fartoviy_Spec
  № 1  
Ответить с цитированием
Fartoviy_Spec

Регистрация: Mar 2012
Сообщений: 36
По умолчанию Ошибка TypeError: Error #1010: Термин не определен и не имеет свойств

TypeError: Error #1010: Термин не определен и не имеет свойств.
at MethodInfo-1()
Такая ошибка. Ругается на переменную par как я думаю. Подскажите пожалуйста как исправить

Код AS3:
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, textLoaded);
urlLoader.load(new URLRequest("xml/kross.xml"));
var xml:XML;
var xmlList:XMLList;
function textLoaded(e:Event):void
{
	xml = XML(urlLoader.data);
	xmlList = xml.zadanie;
	var arr_kletki:Array=new Array();
	var par;
 
	for (var i=0; i<xmlList.length(); i++)
	{
		arr_kletki[i] = [];
		for (var j=0; j<xmlList[i].kletki; j++)
		{
			var txtField:TextField = new TextField();
			txtField.width = 28;
			txtField.height = 28;
			txtField.border = true;
 
			if (xmlList[i].polojenie == "gor")
			{
				txtField.x = xmlList[i].kor_x * 28 + j * txtField.width;
				txtField.y = xmlList[i].kor_y * 28;
			}
			if (xmlList[i].polojenie == "ver")
			{
				txtField.x = xmlList[i].kor_x * 28;
				txtField.y = xmlList[i].kor_y * 28 + j * txtField.width;
			}
			arr_kletki[i][j] = [txtField];
			addChild(txtField);
		}
	}
	addEventListener(MouseEvent.MOUSE_DOWN, onMD);
	function onMD(e:MouseEvent):void
	{
		for (var i1=0; i1<4; i1++)
		{
			for (var j1=0; j1<xmlList[i1].kletki; j1++)
			{
				if (arr_kletki[i1][j1][0].hitTestPoint(mouseX,mouseY))
				{
					par = i1;
				}
			}
		}
 
		addEventListener(Event.ENTER_FRAME, onEnterFrame);
		function onEnterFrame(e:Event):void
		{
			for (var i2=0; i2<4; i2++)
			{
				for (var j2=0; j2<xmlList[i2].kletki; j2++)
				{
					arr_kletki[par][j2][0].borderColor = 0x00FFFF;
				}
			}
 
		}
	}
}

Старый 22.05.2012, 07:19
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 2  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
вы бы еще глубже рефлексией ее закопали. я так понял у вас ее использование находится в функции которая в функции которая в функции?

Вынесите ваши обработчики в одну область видимости, а не городите этот не отлаживаемый ад

Вы js раньше занимались?

Старый 22.05.2012, 12:19
Fartoviy_Spec вне форума Посмотреть профиль Отправить личное сообщение для Fartoviy_Spec Найти все сообщения от Fartoviy_Spec
  № 3  
Ответить с цитированием
Fartoviy_Spec

Регистрация: Mar 2012
Сообщений: 36
глупая ошибка, просто вместо xmlList[i2] надо было написать xmlList[par]

Не занимался js. А что не правильного в конструкции таких функций?

Старый 22.05.2012, 12:35
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 4  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
в том что существует такая вещь как замыкания которые потом провоцируют утечки памяти, а потом начинают всякими изврщенческими методами "чистить память" и "удалять объекты". В частности у вас утечки присутствуют.
__________________
:)

Старый 22.05.2012, 12:46
Fartoviy_Spec вне форума Посмотреть профиль Отправить личное сообщение для Fartoviy_Spec Найти все сообщения от Fartoviy_Spec
  № 5  
Ответить с цитированием
Fartoviy_Spec

Регистрация: Mar 2012
Сообщений: 36
Какие утечки?

Старый 22.05.2012, 13:45
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 6  
Ответить с цитированием
Frost47rus
[+4 08.09.13]

Регистрация: May 2012
Сообщений: 131
Б-же, что за ужасный код?! Страшно представить, как вы думаете.
Объясните нормально, что вы хотите сделать в этом коде?!
(смотрю на строки и мне реально дурно. Что, где, куда идёт - вообще каша)

Старый 22.05.2012, 13:52
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 7  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
прочтите и примерьте на свой код. Все локальные переменные попадут в замыкания, а так как вы их нигде не отписываете то лисенер висит а на нём висят ссылки на локальные переменные, это и называется утечка, потому что память утекла.
__________________
:)

Старый 22.05.2012, 20:39
Fartoviy_Spec вне форума Посмотреть профиль Отправить личное сообщение для Fartoviy_Spec Найти все сообщения от Fartoviy_Spec
  № 8  
Ответить с цитированием
Fartoviy_Spec

Регистрация: Mar 2012
Сообщений: 36
Получается что флэшка будет сильно тормозить, из за утечки памяти?

Старый 22.05.2012, 21:22
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 9  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
не факт, но когда начнёт тормозить будет уже поздно. Она будет есть больше памяти точно, а когда она станет есть слишком много памяти вы возьмётесь за голову, и будете это переписывать. Короче не нужно так писать. Анонимные функции это зло, не пишите их. От наличия нормального именного метода в классе хуже не станет, лучше точно станет и работать будет быстрее. Только на своей флешке вы это не увидите, она пока меленькая, а вот когда станет большая, тогда и пригодится всё это.
__________________
:)

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

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

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


 


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


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