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

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

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

Регистрация: May 2006
Сообщений: 6
По умолчанию Подскажите пожалуйста, верна ли такая конструкция?

Добрый день. Не с кем посоветоваться, поэтому пишу здесь на этом форуме, подскажите пожалцйста. Задача прокрутить ролик три раза и остановить, верна ли такая конструкция ActionScript 3.0? При публикации пропадает вся анимация и ничего не показывается.

var i:int=0;
for (i = 0; i < 3; i++)
{
this.play();
}
else
{
this.stop();
}

Заранее Благодарю.
__________________
Success comes in cans, failure cames in can'ts.

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Нет.00000
__________________
There is no thing in this world that is not simple.

Старый 25.10.2017, 11:47
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 3  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
создаем документ класс main, и пишем что-то вроде:

Код AS3:
package  {
 
	import flash.display.MovieClip;
 
 
	public class main extends MovieClip 
	{
		private var _iterationCount:int = 0;
 
		public function main() 
		{
			this.addEventListener(Event.ENTER_FRAME, enterFrameHandler)
 
			this.play();
		}
 
		private function enterFrameHandler(event:Event):void
		{
			if(_iterationCount > 2)
			{
					this.stop();
					this.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
			}
			else if(this.currentFrame == this.totalFrames)
			{
					_iterationCount ++;
					this.gotoAndPlay(1);
			}
		}
	}
}
__________________
while(live()) { hope(); }

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

Регистрация: May 2006
Сообщений: 6
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
Нет.00000
Подскажите, пожалуйста, что не так?
__________________
Success comes in cans, failure cames in can'ts.

Старый 25.10.2017, 11:53
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 5  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
Цитата:
Сообщение от billyboom Посмотреть сообщение
Подскажите, пожалуйста, что не так?
похоже, что всё

Добавлено через 5 минут
еще можно в первом кадре создать переменную
Код AS3:
 iteration=0
после чего в последнем прибавлять к нему один
Код AS3:
iteration++
и смотреть, если оно равно 3, то стопить ролик, а если нет - делать перемотку в начало
Код AS1/AS2:
if(iteration >3) 
     stop();
else
     gotoAndPlay(1)
но это не точно будет работать, так как я не уверен, будет ли видна переменная, созданная в первом кадре из последнего.
__________________
while(live()) { hope(); }

Старый 25.10.2017, 12:01
billyboom вне форума Посмотреть профиль Отправить личное сообщение для billyboom Найти все сообщения от billyboom
  № 6  
Ответить с цитированием
billyboom
 
Аватар для billyboom

Регистрация: May 2006
Сообщений: 6
ZergMaster, Прошу прощение, а в самой сцене, как вызвать этот класс?
__________________
Success comes in cans, failure cames in can'ts.

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

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
Попробуйте иногда пользоваться гуглом
__________________
while(live()) { hope(); }

Старый 26.10.2017, 15:33
billyboom вне форума Посмотреть профиль Отправить личное сообщение для billyboom Найти все сообщения от billyboom
  № 8  
Ответить с цитированием
billyboom
 
Аватар для billyboom

Регистрация: May 2006
Сообщений: 6
ZergMaster, спасибо, с АЕ так и не получилось, пришлось изобрести костыли в виде дополнительной анимации и выражения this.stop(); ))
__________________
Success comes in cans, failure cames in can'ts.

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

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
такое АЕ?
То есть, пройти по первой ссылке в гугле оказалось слишком сложно, чтоб узнать, что документ класс создается в панели настроек главной сцены?..
Вот тут я рассказываю, как создавать док класс и как вообще перейти на программирование в классах.

... создать документ-класс с именем Main и копипастнуть в него это:
Код AS3:
package  {
 
	import flash.display.MovieClip;
	import flash.events.Event;
 
	public class Main extends MovieClip {
 
		private var _iterationCount:int = 0;
 
		public function Main() 
		{
			this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
		}
 
		private function enterFrameHandler(event:Event):void 
		{
			if(this.currentFrame == this.totalFrames)
				_iterationCount ++;
 
			if (_iterationCount > 2) 
			{
				this.stop();
				this.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
			}
		}
	}
}
слишком сложно?
__________________
while(live()) { hope(); }


Последний раз редактировалось ZergMaster; 26.10.2017 в 16:51.
Создать новую тему Ответ Часовой пояс GMT +4, время: 18:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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