Показать сообщение отдельно
Старый 03.07.2008, 00:23
N1ka вне форума Посмотреть профиль Отправить личное сообщение для N1ka Найти все сообщения от N1ka
  № 19  
Ответить с цитированием
N1ka
 
Аватар для N1ka

Регистрация: Mar 2007
Адрес: Ужгород (UA)
Сообщений: 62
Цитата:
Сообщение от ramshteks Посмотреть сообщение
так проблемка та наверное в том, что ты и не создаешь их... вернее создаешь, но каждый раз перезаписываешь...

Код:
function Carousel(){
var menuItemArray:Array=new Array;
			for (var i=0; i<numOfItems; i++){
				menuItemArray[i] = new Item();
				menuItemArray[i].name = "item"+i
				addChild(menuItemArray[i]);
				menuItemArray[i].rotation = i * ((Math.PI*2)/numOfItems);
				menuItemArray[i].addEventListener(Event.ENTER_FRAME, mover);
			}
		}
вот такую карусель попробуй...)
Сделал так и вот результат:
Как я и говорил ранее "вместо десяти menuItem бегает всего лишь один, быстрее чем нужно и мало того, еще и боком, тоесть сам menuItem перекручен на несколько градусов".

Удивительно, результат тот же что и предыдущий несмотря на то что main.Carousel.as с измененным кодом я сохранил.

И еще одно наблюдение, menuItem когда бегает по кругу, он бегает не стабильно перекручена несколько градусов, а бегает по кругу и постепенно перекручивается что аж верхногами кружиться и т.д...

И еще наблюдение, что я пропустил, даже если создать один menuItem
Код:
var numOfItems:Number = 1;
он хоть и бегает по кругу с нормальной скоростью, но оказуется тоже переворачуется просто очень медленно, т.е. со временем становиться верхногами и т.д. От скорости беганья зависит скорость переворачивания, это написано у нас тут:
Код:
this.rotation += this.speed;
Смотря на эту строку можно задуматься зачем нам в карусели чтобы menuItem переворачивался? Это уже не карусель а центрифуга получается, а достижением такой цели мы не занимаемся.

Исходя из этого приходит мысль о том что старый
Код:
menuItem.angle
не равняется новому
Код:
menuItem.rotation
Значит вместо angle должно быть не rotation, а что-то другое. Что? Чем заменить в AS3 строку
Код:
menuItem.angle = i * ((Math.PI*2)/numOfItems);
или если это и в AS3 должно работать, то почему у меня не хочет. В чем ошибка?


Последний раз редактировалось N1ka; 03.07.2008 в 00:55.