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

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

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

Регистрация: Feb 2012
Сообщений: 205
Question азы работы с as3isolib, как справиться с ошибкой?

Здравствуйте!
наверняка, не в эту тему нужно, но даже не знаю, куда
Сегодня с утра пытаюсь вникать в азы создания изометрических флеш-приложений посредствам библиотек as3isolib.
По двум распространённым в сети урокам добилась создания карты, разместила 1 дополнительный Sprite, который должен переноситься на scene в место клика мышкой (работал странно - переносил только в позицию 0,0)
потом добавила ещё один спрайт (в коде ошибок не было) - и появилась ошибка компиляции:

Error: skin asset is not of the following types: BitmapData, DisplayObject, ISpriteAsset, IFactory or Class cast as DisplayOject.

Отменила все изменения до последней сработавшей версии - ошибка продолжает появляться. не пойму - что случилось?

Ну и ещё просьба: если знаете хорошие уроки по работе в builder с движком as3isolib - дайте, пожалуйста, ссылки.

скрипт:
package
Код AS3:
{
	import as3isolib.display.IsoSprite;
	import as3isolib.display.IsoView;
	import as3isolib.display.primitive.IsoBox;
	import as3isolib.display.scene.IsoGrid;
	import as3isolib.display.scene.IsoScene;
	import as3isolib.geom.IsoMath;
	import as3isolib.geom.Pt;
 
	import eDpLib.events.ProxyEvent;
 
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
 
	[SWF(width='800', height='600', backgroundColor='#000000', framerate='30')]
 
	public class Iso extends Sprite
	{
		private static const CELL_SIZE:Number=50;
 
		private var grid:IsoGrid;
		private var scene:IsoScene;
		private var view:IsoView;
		private var pole:IsoSprite;
		private var iso:IsoSprite
 
		public function Iso ()
		{
			grid = new IsoGrid();
			grid.setGridSize(8,8,1);
			grid.cellSize= CELL_SIZE;
			grid.showOrigin=false;
			grid.addEventListener(MouseEvent.CLICK,gridClick);
 
			scene = new IsoScene();
			scene.addChild(grid);
 
			for (var i:int =0; i<8; i++)
			{
				for (var j:int =0; j<8; j++)
				{	iso = new IsoSprite();
					iso.sprites=[grass];
					if (Math.random()<0.7)
						iso.sprites=[grass];
					if (Math.random()>=0.7 && Math.random()<0.8)
						iso.sprites=[grass2];
					if (Math.random()>=0.8 && Math.random()<0.9)
						iso.sprites=[grass3];
					if (Math.random()>=0.9)
						iso.sprites=[grass4];
					iso.moveBy(j*50,i*50,0);
					scene.addChild(iso);
					//switch (Math.random()*10)             //кстати, подскажите, 
					//case 0,1,2,3:iso.sprites=[grass];     //как здесь правильно 
					//case 4,5,6:iso.sprites=[grass2];      //организовать switch
					//case 7,8:iso.sprites=[grass3];
					//case 9:iso.sprites=[grass4];
				}
			}
 
			pole=new IsoSprite();
			pole.sprites=[grad];
			pole.moveTo(150,-200,0);			
			scene.addChild(pole);
 
 
			scene.render();
 
			view= new IsoView();
			view.setSize(800,600);
			view.centerOnPt(new Pt(200,200,0))
			view.addScene(scene);
			addChild(view);
		}
 
		protected function gridClick(event:ProxyEvent):void
		{
			var me:MouseEvent= MouseEvent(event.targetEvent);
			var p:Pt=new Pt(me.localX, me.localY);
			IsoMath.screenToIso(p);
			pole.moveTo(Math.floor(p.x/CELL_SIZE)*CELL_SIZE,Math.floor(p.y/CELL_SIZE)*CELL_SIZE,1);
			scene.render();
		}
	}
}

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

Регистрация: Jul 2008
Сообщений: 912
Вы присваиваете спрайт какому-то скину? Этого видимо нельзя делать.

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

Регистрация: Feb 2012
Сообщений: 205
весь этот скрипт отлично работал, теперь внезапно перестал=(
Skin'ом здесь считается .swf, подключенный для заливки объекта. Это у меня есть и какое-то время всё компилировалось отлично.

Добавлено через 13 минут
полная ошибка:
Error: skin asset is not of the following types: BitmapData, DisplayObject, ISpriteAsset, IFactory or Class cast as DisplayOject.
at as3isolib.display::IsoSprite/renderSprites()[\as3isolib.v1.core\src\as3isolib\display\IsoSprite.as:176]
at as3isolib.display::IsoSprite/renderLogic()[\as3isolib.v1.core\src\as3isolib\display\IsoSprite.as:128]
at as3isolib.core::IsoContainer/render()[\as3isolib.v1.core\src\as3isolib\core\IsoContainer.as:297]
at as3isolib.core::IsoContainer/renderChild()[\as3isolib.v1.core\src\as3isolib\core\IsoContainer.as:357]
at as3isolib.core::IsoContainer/renderLogic()[\as3isolib.v1.core\src\as3isolib\core\IsoContainer.as:343]
at as3isolib.display.scene::IsoScene/renderLogic()[\as3isolib.v1.core\src\as3isolib\display\scene\IsoScene.as:327]
at as3isolib.core::IsoContainer/render()[\as3isolib.v1.core\src\as3isolib\core\IsoContainer.as:297]
at Iso()[\Adobe Flash Builder 4.5\Iso\src\Iso.as:75] - эта строка - размещение сцены в окне просмотра.

Добавлено через 1 час 53 минуты
я, похоже, поняла в чём проблема.
"ошибка версии компилятора. Возможно, необходимоа переустановка приложения" сам билдер выдал
после переустановки - заработало

Добавлено через 3 часа 55 минут
и вот ещё: если однажды проект скомпилировался с ошибкой - как его не исправляй - ошибка продолжит появляться. нужно найти скомпилированный .swf своего проекта - и удалить

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

Регистрация: Jul 2008
Сообщений: 912
Попробуйте выбрать компиляцию под другую версию плеера, может as3isolib не подходит для компиляции плеера которая у вас выбрана.

Старый 13.11.2012, 16:24
Nbovenko вне форума Посмотреть профиль Отправить личное сообщение для Nbovenko Найти все сообщения от Nbovenko
  № 5  
Ответить с цитированием
Nbovenko

Регистрация: Jul 2009
Адрес: Долгопрудный
Сообщений: 26
Отправить сообщение для Nbovenko с помощью ICQ
Если запускаете в браузере, нужно чистить кэш (для фф вроде бы можно сделать так, чтобы не сохранял историю) Ну и Project->Clean. Это на всякий случай, если не знали или запамятовали.
__________________
Nothing last forever, even cold november rain.

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

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

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


 


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


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