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

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

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

Регистрация: Oct 2012
Сообщений: 191
Question Список типа Vector...

Здравствуйте! Вопрос теоретический... Мне очень интересно, чем отличается список Vector типа, от обычного Array массива? Какие он дает преимущества на практике и, вообще, зачем он? Спасибо!

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
http://ac-sc.ru/Vector.html
?


Цитата:
экземпляр Vector имеет два основных преимущества перед экземпляром Array, все элементы которого представляют собой экземпляры одного класса:

- Производительность: доступ к массиву и итерация осуществляются гораздо быстрее при использовании экземпляра Vector, чем при использовании экземпляра Array.
- Безопасность типов: в строгом режиме компилятор может идентифицировать ошибки типов данных (например, присвоение вектору значения, имеющего неверный тип данных, или ожидание неверного типа данных при считывании значения из вектора).

Старый 08.03.2013, 21:03
vitamin4er вне форума Посмотреть профиль Отправить личное сообщение для vitamin4er Найти все сообщения от vitamin4er
  № 3  
Ответить с цитированием
vitamin4er

Регистрация: Oct 2012
Сообщений: 191
И сразу же проблема...В обучающем видео все гладко и ошибок не выскакивает...перепроверял много раз! У меня же компилятор выдает следующие "1084: Syntax error: expecting identifier before lessthan." на код
Код AS3:
private var _sprites:Vector.<Sprite> = new Vector.<Sprite>();
Подскажите в чем дело? Спасибо

Старый 08.03.2013, 21:18
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Подскажите в чем дело? Спасибо
Не в этом. Скорее всего ошибка где-то до объявления вектора. Возможно прописано ключевое слово var но не указано имя переменной, или еще что-то.

Старый 08.03.2013, 22:30
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 5  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Еще возможно вы компилируете под древний флешплеер (младше 10)
__________________
тонкий тролль, осеянный благодатью

Старый 08.03.2013, 22:40
vitamin4er вне форума Посмотреть профиль Отправить личное сообщение для vitamin4er Найти все сообщения от vitamin4er
  № 6  
Ответить с цитированием
vitamin4er

Регистрация: Oct 2012
Сообщений: 191
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Не в этом. Скорее всего ошибка где-то до объявления вектора. Возможно прописано ключевое слово var но не указано имя переменной, или еще что-то.
Кода довольно много...но что-то убрать не рискну, все взаимосвязано... Если есть время и желание, подскажите где ошибка

Код AS3:
package  
{
	import Box2D.Collision.b2AABB;
	import Box2D.Collision.b2Bound;
	import Box2D.Collision.Shapes.b2CircleDef;
	import Box2D.Collision.Shapes.b2PolygonDef;
	import Box2D.Common.Math.b2Vec2;
	import Box2D.Dynamics.b2Body;
	import Box2D.Dynamics.b2BodyDef;
	import Box2D.Dynamics.b2World;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.events.StatusEvent;
	/**
	 * ...
	 * @author vitamin4er
	 */
	public class BallsGame extends GameScreen 
	{
		private var _world:b2World;
		private const RATIO:Number = 30;
 
		private var _sprites:Vector.<Sprite> = new Vector.<Sprite>();
		private var _bodies:Vector.<b2Body> = new Vector.<b2Body>();
 
		public function BallsGame() 
		{
			box2dInit();
 
			createWalls();
 
			createRedCircle(randomInt(20,380),randomInt(20,430));
 
			this.graphics.beginFill(0x00ff00,0.5);
			this.graphics.drawRect(0, 0, 400, 450);
			this.graphics.endFill();
 
			addEventListener(MouseEvent.CLICK, onClick);
			start();
		}
 
		private function randomInt(min:Number, max:Number):int
		{
			if (min > max) throw new Error("Ooops!");
 
			var value:int = Math.random() * max;
			if (value < min) value = min + min * Math.random(); 
 
			return value;
		}
 
		private function createRedCircle(x:Number,y:Number):void 
		{
			var shapeDef:b2CircleDef = new b2CircleDef();
			shapeDef.radius = 15 / RATIO;
			shapeDef.density = 1;
			shapeDef.friction = 0;
			shapeDef.restitution = 0.5;
 
			var bodyDef:b2BodyDef = new b2BodyDef();
			bodyDef.position.Set(x / RATIO, y / RATIO);
 
			var body:b2Body = _world.CreateBody(bodyDef);
			body.CreateShape(shapeDef);
			body.SetMassFromShapes();
 
			var sprite:Sprite = new RedBall();
			sprite.x = x;
			sprite.y = y;
			addChild(sprite);
 
			_sprites.push(sprite);
			_bodies.push(body);
		}
 
		private function createWalls():void 
		{
			createBox(200, -5, 200, 5);
			createBox(200, 455, 200, 5);
			createBox( -5, 225, 5, 225);
			createBox(405, 225, 5, 225);
		}
 
		private function createBox(x:Number, y:Number, w:Number, h:Number):void 
		{
			var shapeDef:b2PolygonDef = new b2PolygonDef();
			shapeDef.density = 0;
			shapeDef.restitution = 1;
			shapeDef.SetAsBox(w, h);
 
			var bodyDef:b2BodyDef = new b2BodyDef();
			bodyDef.position.Set(x / RATIO, y / RATIO);
 
			var body:b2Body = _world.CreateBody(bodyDef);
			body.CreateShape(shapeDef);
			body.SetMassFromShapes();
 
			var sprite:Sprite = new Sprite();
			sprite.graphics.beginFill(0x000000, 1);
			sprite.graphics.drawRect(x - w, y - h, w * 2, h * 2);
			sprite.graphics.endFill();
 
			addChild(sprite);
		}
 
		private function box2dInit():void 
		{
			var aabb:b2AABB = new b2AABB();
			aabb.lowerBound.Set( -1000/RATIO, -1000/RATIO);
			aabb.upperBound.Set(1000/RATIO, 1000/RATIO);
 
			var gravity:b2Vec2 = new b2Vec2(0, 0);
 
			_world = new b2World(aabb, gravity, false);
			trace(_world.GetBodyCount());
		}
 
		private function onClick(e:MouseEvent):void 
		{
			dispatchEvent(new StatusEvent(StatusEvent.STATUS, false, false, "", "gotoMenu"));
		}
 
		override public function start():void 
		{
			addEventListener(Event.ENTER_FRAME, onLive);
		}
 
		override public function stop():void 
		{
			removeEventListener(Event.ENTER_FRAME, onLive);
		}
 
		private function onLive(e:Event):void 
		{
			_world.Step(1 / 60, 10);
 
			for (var i:int = 0; i < _sprites.length; i++)
			{
				_sprites[i].x = _bodies[i].GetPosition().x * RATIO;
				_sprites[i].y = _bodies[i].GetPosition().y * RATIO;
			}
		}
 
	}
 
}

Старый 08.03.2013, 23:35
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 7  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
В чем пишете, чем компилируете?

Старый 08.03.2013, 23:50
vitamin4er вне форума Посмотреть профиль Отправить личное сообщение для vitamin4er Найти все сообщения от vitamin4er
  № 8  
Ответить с цитированием
vitamin4er

Регистрация: Oct 2012
Сообщений: 191
Заменил все на это дело на Array...и оооо чудо! Все работает...

П.С. Устанавливал по многим "гайдам", было много ошибок и недопониманий, так что боюсь все на соплях держится! Пишу в FlashDevelop + устанавливал SDK (так и не понял зачем он)...затем скачал flashplayer_10_sa_debug.exe и где-то в настройках девелопа проводил к этому ексу путь...(затем еще проводил путь к adobe flash)...

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Project->Properties->SDK
Что в Installed SDK и что в Custop SDK?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вы уверены, что компилите не под девятый плеер? Вектор только в десятке появился.

"Зачем SDK" — чтобы компилить проекты без использования Flash IDE, быстро и бесплатно.. В меню создания нового проекта выберите не "Flash IDE project", а просто "AS 3.0 project" (первый во второй колонке). И я бы на Вашем месте переустановил ФД "из коробки", не особо фантазируя по гайдам, большинство из которых писаны про более ранние версии ФД.
__________________
Reality.getBounds(this);

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

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

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


 


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


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