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

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

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

Регистрация: Mar 2013
Сообщений: 41
По умолчанию Циклы и спрайты

Создаю циклом спрайты в них добавляю по 2 битмапа. Дальше у меня есть таймер который должен делать видимым и не видимым один а потом другой битмап(то есть эт анимация такая). Проблема в том, что это происходит только с одним спрайтом. Как быть?

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

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Если хотите, чтоб вам помогли, покажите код

Старый 07.04.2013, 06:11
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 3  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
Цитата:
Как быть?
До тех пор пока не научитесь решать задачу по частям - нечего в программировании делать.
Дабагер -один из способов отвечать себе на вопросы поочередно, а не на все сразу.
__________________
...

Старый 07.04.2013, 12:27
xrapa вне форума Посмотреть профиль Отправить личное сообщение для xrapa Найти все сообщения от xrapa
  № 4  
Ответить с цитированием
xrapa

Регистрация: Mar 2013
Сообщений: 41
Код AS3:
 
public	var kom_zt:Timer;
public	var komZm:Bitmap;
public	var komZm1:Bitmap;
public	var komZmSprite:Sprite;
public	var komZmB:Body;
 
//...//
 
for(var k:int=0; k<5; k++){
 
	komZm=new Bitmap();	
 
	komZm.bitmapData = new BitmapData(Atlas.atlasXML.sprite[25].@w, Atlas.atlasXML.sprite[25].@h);
	komZm.bitmapData.copyPixels(Preloader.ATLAS,
		new Rectangle(Atlas.atlasXML.sprite[25].@x, Atlas.atlasXML.sprite[25].@y, Atlas.atlasXML.sprite[25].@w, Atlas.atlasXML.sprite[25].@h),
		new Point(0, 0));
	komZm.smoothing=true;
 
	komZm1=new Bitmap();
	komZm1.bitmapData = new BitmapData(Atlas.atlasXML.sprite[26].@w , Atlas.atlasXML.sprite[26].@h);
	komZm1.bitmapData.copyPixels(Preloader.ATLAS,
		new Rectangle(Atlas.atlasXML.sprite[26].@x, Atlas.atlasXML.sprite[26].@y, Atlas.atlasXML.sprite[26].@w, Atlas.atlasXML.sprite[26].@h),
		new Point(0, 0));
	komZm1.smoothing=true;
 
	komZmSprite=new Sprite;
 
	komZmSprite.addChild(komZm);
	komZmSprite.addChild(komZm1);
 
           komZm.x -= komZm.width/2;
	komZm.y -= komZm.height/2;
	komZm1.x -= komZm1.width/2;
	komZm1.y -= komZm1.height/2;
 
Mir.addChild(komZmSprite);	
 
                      komZmSprite.width=(stage.stageWidth*93)/768;
		komZmSprite.scaleY=komZmSprite.scaleX;
 
		komZmB=new Body(BodyType.DYNAMIC, new Vec2(0, 0));
		komZmB.isBullet=true;
		komZmB.shapes.add(new Polygon(Polygon.box(komZmSprite.width, komZmSprite.height), Material.steel()));
		komZmB.position.setxy(stage.stageWidth/5+((stage.stageWidth*3)/5)*Math.random(), stage.stageHeight/10);
		komZmB.allowRotation=false;
		komZmB.space=space;		
		komZmB.userData.graphic=komZmSprite;
		komZmB.velocity.setxy(stage.stageWidth/100, stage.stageHeight/100);
 
//после того как выполнилась функция с циклам запускаю таймер//
 
private function anim():void{
kom_zt = new Timer(50);
kom_zt.start();
kom_zt.addEventListener(TimerEvent.TIMER, kom_ztf);
};
 
		private	function kom_ztf (e:TimerEvent):void{
			if((kom_zt.currentCount & 1) == 0) {	
 
				komZm1.visible=true;komZm.visible=false;
			} else{	
 
				komZm.visible=true;komZm1.visible=false;}

Старый 07.04.2013, 13:25
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 5  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
Код AS3:
(kom_zt.currentCount & 1) == 0)
Это подсчет четного числа?
Такие вещи лучше выносить в промежуточные переменные
Код AS3:
var isEven:Boolean = (kom_zt.currentCount & 1) == 0;
Ну возможно таймер никогда не принимает четные значения
Возможно один из спрайтов просто белый, они отрисовуются без анимаций?

Упростите в разбейте код на отдельные куски и упростите на ключевых моментов постепенно усложняя или пройдетесь по дебагу. Разобратьсся взуально втаких вещах бесперспективное занятие.
__________________
...


Последний раз редактировалось Александр Мостовой; 07.04.2013 в 13:38.
Старый 07.04.2013, 13:43
xrapa вне форума Посмотреть профиль Отправить личное сообщение для xrapa Найти все сообщения от xrapa
  № 6  
Ответить с цитированием
xrapa

Регистрация: Mar 2013
Сообщений: 41
Таймер работает хорошо, для одного спрайта. ПРОВЕРЕН. Да и как таймер может не принимать четные значения!

Добавлено через 5 часов 14 минут
Ну кто знает?


Последний раз редактировалось xrapa; 07.04.2013 в 18:58.
Старый 08.04.2013, 00:16
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 7  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Попробуйте большие значения - 50 мсек это как-то быстро. Может мерцание монитора совпало с частотой смены :о)

Оффтоп - Ваш стиль очень уж знаком.

Добавлено через 3 минуты
Хотя ошибка очевидна. Дайте угадаю, работает только последний спрайт. Потому что ссылки остались на последние созданные объекты.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 08.04.2013, 18:34
xrapa вне форума Посмотреть профиль Отправить личное сообщение для xrapa Найти все сообщения от xrapa
  № 8  
Ответить с цитированием
xrapa

Регистрация: Mar 2013
Сообщений: 41
GBee, да вы правы. Но как это исправить?

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Да исправить легко. Вам надо изучить циклы и массивы. Да и переменные как-то лучше называть.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

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

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


 


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


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