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

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

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

Регистрация: Nov 2017
Сообщений: 1
По умолчанию Как программно остановить работу скрипта снегопада при нажатии на кнопку?

Здравствуйте! Делаю открытку со снегопадом. Скрипт снегопада нашел в интернете. Снегопад запускается в середине открытки. На открытке в конце ролика есть кнопка "Повторить просмотр", при нажатии на которую происходит возврат к первому кадр и все начинается снова, но снегопад все равно продолжается. А нужно, чтобы он также останавливался и начался в середине открытки.

Скрипт при нажатии на кнопку "Повторить просмотр":
Код AS3:
button_1.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndPlayFromFrame);
 
function fl_ClickToGoToAndPlayFromFrame(event:MouseEvent):void
{
	gotoAndPlay(1);
}
 
button_1.addEventListener(MouseEvent.CLICK, fl_ClickToStopAllSounds);
 
function fl_ClickToStopAllSounds(event:MouseEvent):void
{
	SoundMixer.stopAll();
}
Скрипт снегопада:
Код AS3:
var snowflakes:Array = new Array();
var snowflakeProps:Dictionary= new Dictionary(true);
var max_snowsize:Number = 0.04;
// Количество снежинок
var snowflakesCnt:Number = 40;
var oheight:Number;
var owidth:Number;
init();
function init():void {
 
        // Задаем ширину и высоту области, где будет идти снег, она будет равна размерам нашей флэшки
	owidth = 549;
	oheight = 547;
 
	for (var i:int=0; i<snowflakesCnt; i++) {
 
		var t:MovieClip = new SnowFlake();//
		t.name = "snowflake"+i;
 
		t.alpha = .2+Math.random()*.9;
		t.x = -(owidth/2)+Math.random()*(1.5*owidth);
		t.y = -(oheight/2)+Math.random()*(1.5*oheight);
		t.scaleX = t.scaleY=.5+Math.random()*(max_snowsize*5);
		var o:Object = new Object();
		//Скорость и горизонтальное перемещение снежинок
		o.k = 1+Math.random()*4;
		o.wind = -1.5+Math.random()*(1.2*2);
 
		snowflakeProps[t] = o;
 
		addChild(t);
		snowflakes.push(t);
	}
	addEventListener(Event.ENTER_FRAME, snowFlakeMover);
}
function shakeUp():void{
	for (var i:int=0; i<snowflakes.length; i++) {
		var t:MovieClip = snowflakes[i] as MovieClip;
		t.x = -(owidth/2)+Math.random()*(1.5*owidth);
		t.y = -(oheight/2)+Math.random()*(1.5*oheight);
	}
}
function snowFlakeMover(evt:Event):void {
	var dO:MovieClip;
	var o :Object;
	if(visible && parent.visible){
	for (var i:int = 0; i < snowflakes.length; i++) {
		dO = snowflakes[i] as MovieClip;
		o = snowflakeProps[dO];
		dO.y += o.k;
		dO.x += o.wind;
		if (dO.y>oheight+10) {
 
			dO.y = -20;
 
		}
		if (dO.x>owidth+20) {
 
			dO.x = -(owidth/2)+Math.random()*(1.5*owidth);
			dO.y = -20;
 
		} else if (dO.x<-20) {
 
			dO.x= -(owidth/2)+Math.random()*(1.5*owidth);
			dO.y = -20;
		}
 
	}
	}
}

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

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 566
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
в кнопку добавить
Код AS3:
removeEventListener(Event.ENTER_FRAME, snowFlakeMover);
 
	for (var i:int=0; i<snowflakes.length; i++) {
		var t:MovieClip = snowflakes[i] as MovieClip;
                t.parent.removeChild(t);
	}
__________________
Я заклинаю вас действовать иначе.

Старый 04.12.2017, 18:41
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 3  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
А лучше так
Код AS3:
for each (var t:MovieClip in snowflakes) {
                t.parent.removeChild(t);
	}

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

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

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


 


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


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