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

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

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

Регистрация: Aug 2011
Адрес: Урал
Сообщений: 43
По умолчанию Обращение к элементу массива, как к объекту

Здравствуйте.

Собственно, код:
Код AS3:
 
package  {
 
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.display.Sprite;
	import flash.ui.MouseCursor;
	import flash.ui.Mouse;
 
 
	public class MainClass extends Sprite {
		public var cells : Array = new Array();
		public function MainClass() {
 
			for (var i=0; i <= 3; i++) { 
				var b : Sprite = new Sprite(); 																  		
				cells.push(b);
				b.graphics.beginFill(0x000000, 0.2);	
				b.graphics.drawRect(0,0,50,50);
				b.graphics.endFill();
				b.x = (50 * i);		
				b.y = 50;
				b.alpha = 0.4*(i+1);											
				addChild(b);
			}
			addChild(it);				
			it.addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEvent) {
			     it.startDrag();
			});
			it.addEventListener(MouseEvent.MOUSE_UP, function (e:MouseEvent) {
			     it.stopDrag();										
			     for (var i = 0; i <= cells.length; i++) {									
			          if (cells[i].hitTestPoint(mouseX, mouseY, true)) { 
			          it.x = cells[i].x+25;
			          it.y = cells[i].y+25;
			          }
			     }								
			});
 
		}
	}
 
}
Ругается (Error #1010: Термин не определен и не имеет свойств) на cells[i].hitTestPoint(mouseX, mouseY, true). Я так понял, нужно обращаться не просто к элементу массива, а как к объекту? Хотя cells[i] это и есть уже отрисованый спрайт... В принципе, все работает как мне нужно, но все же как избежать ошибки?

Старый 12.09.2011, 11:49
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
здесь причина ошибки в том, что вызывается индекс массива, на котором отсутствует объект.
Вот этот код не правильный:
Код AS3:
for (var i = 0; i <= cells.length; i++)
нужно так:
Код AS3:
for (var i = 0; i < cells.length; i++)
А вообще, я бы использовал здесь такую конструкцию цикла
Код AS3:
for (var i:String in cells)

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

Регистрация: Aug 2011
Адрес: Урал
Сообщений: 43
Успех) Все работает как нужно.
Спасибо за помощь, goodguy

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

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

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


 


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


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