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

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

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

Регистрация: Jun 2012
Сообщений: 40
Цитата:
Сообщение от spooner Посмотреть сообщение
Зачем вы умышленно теряете ссылку на объект, если он вам нужен будет в будущем?
Если ссылок на объект не останется, то его GC съест.

myMap.addChild(new myPlayer()) //класс myPlayer потомок DisplayObject

на экране не отобразиться?

Добавлено через 4 минуты
Цитата:
Сообщение от Krusty Посмотреть сообщение
Код у вас совершенно неверный, caseyryan правильно заметил. Добавляется объект.
в чем код не верен?

Старый 04.10.2012, 14:16
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 12  
Ответить с цитированием
Krusty

Регистрация: Jul 2007
Сообщений: 393
Вы добавляете класс mySprite, это невозможно.
Нужно добавлять объект-экземпляр класса.
В вашем коде cellSprite-это объект, mySprite-класс.

Старый 04.10.2012, 14:20
wisconsin вне форума Посмотреть профиль Отправить личное сообщение для wisconsin Найти все сообщения от wisconsin
  № 13  
Ответить с цитированием
wisconsin

Регистрация: Jun 2012
Сообщений: 40
Код AS3:
var cellSprite:Sprite;
var myMap:Sprite = new Sprite();
var placeX:int = 0;
 
for (var i:int = 0; i < 5; i++)
{
      cellSprite = new mySprite();// mySprite наследник класса Sprite
      cellSprite.x = placeX;
 
      myMap.addChild(mySprite);
 
      placeX += 10;
}
так верно?

этот код создает пять объектов, так ведь? или...

и в конце концов переменная cellSprite будет ссылаться на последний, созданный циклом, экземпляр

Старый 04.10.2012, 14:22
spooner вне форума Посмотреть профиль Отправить личное сообщение для spooner Найти все сообщения от spooner
  № 14  
Ответить с цитированием
spooner
 
Аватар для spooner

Регистрация: Mar 2009
Сообщений: 207
Не
Код AS3:
myMap.addChild(mySprite);
, а
Код AS3:
myMap.addChild(cellSprite);
наверное.

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

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

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

Регистрация: Jul 2007
Сообщений: 393
Нет, так неверно. Еще раз перечитайте.

Старый 04.10.2012, 14:24
spooner вне форума Посмотреть профиль Отправить личное сообщение для spooner Найти все сообщения от spooner
  № 17  
Ответить с цитированием
spooner
 
Аватар для spooner

Регистрация: Mar 2009
Сообщений: 207
Если вы планируете работать с этими объектами сохраните ссылки на них например в массив.

Добавлено через 1 минуту
mySprite у вас - это имя Класса, его нельзя добавить в список отображения, можно только его экземпляр
Код AS3:
new mySprite ();

Старый 04.10.2012, 14:46
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 18  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
чтобы просмотреть всех детей нужен такой код:
Код AS3:
var myMapChildNum:int = myMap.numChildren;
for (var i:int = 0; i < myMapChildNum; i++)
{
      trace("координата cellSprite ="+ (myMap.getChildAt(i) as mySprite).x); //или можно вызвать какую-либо функцию описанную в классе mySprite
}

Старый 04.10.2012, 15:29
wisconsin вне форума Посмотреть профиль Отправить личное сообщение для wisconsin Найти все сообщения от wisconsin
  № 19  
Ответить с цитированием
wisconsin

Регистрация: Jun 2012
Сообщений: 40
Код AS3:
package 
{
	import flash.display.*;
 
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			createMap();
		}
 
		private function createMap():void 
		{
			var placeX:int = 0; // Задаю начальную координату
 
			for (var i:int = 0; i < 5; i++)
			{
				// Рисую квадрат
				var square:Shape = new Shape();
				square.graphics.lineStyle(1);
				square.graphics.beginFill(0xFF0000, 1);
				square.graphics.drawRect (0, 0, 25, 25);
 
				// Отображаю квадрат на заданной координату
				square.x = placeX;
				addChild(square);
 
				// Увеличиваю заданные координату
				placeX += 25;
 
			}
 
		//Двигаю последний добавленный квадрат
		var lastSquare:Shape = ( getChildAt ( numChildren - 1 ) as Shape );
		lastSquare.x += 10;
 
		}
 
	}
 
}

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

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
endfill кто будет делать?

Код AS3:
package 
{
	import flash.display.*;
 
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			createMap();
		}
 
		private function createMap():void 
		{
			var placeX:int = 0; // Задаю начальную координату
			var square:Shape;
 
			for (var i:int = 0; i < 5; i++)
			{
				// Рисую квадрат
				square = new Shape();
				square.graphics.lineStyle(1);
				square.graphics.beginFill(0xFF0000, 1);
				square.graphics.drawRect (0, 0, 25, 25);
				square.graphics.endFill();
 
				// Отображаю квадрат на заданной координату
				square.x = placeX;
				addChild(square);
 
				// Увеличиваю заданные координату
				placeX += 25;
 
			}
 
		//Двигаю последний добавленный квадрат
		square.x += 10; // он просто остался в этой переменной, его никто не портил и ссылку не терял. 
 
		}
 
	}
 
}
вот как можно. Но повторяю, почитайте немного теории, у вас совсем плохо с общим пониманием программирования. Попробуйте более простые задачи.
__________________
:)

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

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

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


 


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


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