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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.01.2010, 19:44
Nel вне форума Посмотреть профиль Отправить личное сообщение для Nel Найти все сообщения от Nel
  № 1  
Ответить с цитированием
Nel
[+1 19.01.09]
[+1 17.03.09]

Регистрация: May 2008
Сообщений: 27
The bomb! jsfl скрипт, пропуск кадров.

Есть скрипт по выгрузки действий над объектами в fla файле

на файлах длиной меньше 70 кадров все ок
как только эта цифра проходит порог скажем файл в 100 кадров то 1-10-20 кадров будет пропущено, каждый раз эфект разный тоест ьне повторяеться, и чем быстрее машина тем больше скрипт хаваает кадров на ноуте порог в 40 кадров на домашнем пк 100 на рабочем 70

код документирован более менее чем полностью )
Код:
fl.showIdleMessage(false);
Main();

function Main() {
	var tl = fl.getDocumentDOM().getTimeline();
	var logFile = "file:///compile_log.txt";

	FLfile.remove( logFile );
	FLfile.write(logFile,"<?xml version=\"1.0\"?>", "append" );
	FLfile.write(logFile,"\n\n<ParticleAnimation>", "append" );

	/// главный тайм лайн
	for (var l = 0; l < tl.layerCount; l++) 
	{

		var layer = tl.layers[l];
		/// если не видин слой
		if(!layer.visible)
			continue;
			
		FLfile.write(logFile,"\n\t<Layer id=\"" + l + "\">", "append" );
		for (var f = 0; f < tl.frameCount; f++) {
			
			frame = tl.layers[l].frames[f];
			
			if (frame) {
				for(var e = 0; e < frame.elements.length; e++ ) {
					
					elem = frame.elements[e];
					if(!elem.libraryItem)
						continue;
						
					var name = elem.libraryItem.name;
					
					if(elem.instanceType == "symbol")
					{
						compilationMovieClip( name, elem.x, elem.y, f, logFile );
					}
					else
					{
						/// здесь надо что то вставить
						WriteTOFileMovieClip( logFile, elem, elem.x, elem.y, f );
						WriteToFileImage( logFile, elem, 0, 0, f );
						FLfile.write(logFile,"\n\t\t</MovieClip>", "append" );	
					}
					fl.trace("Frame := " + f + " -------------------------------------");
				}
			}
		}
		FLfile.write(logFile,"\n\t</Layer>", "append" );
	} 
	FLfile.write(logFile,"\n\n</ParticleAnimation>", "append" );
}

function compilationMovieClip( name, x, y, Indexframe, logFile )
{
	var document = fl.getDocumentDOM();
	document.library.editItem( name );
	
	SpecialMain( x, y, Indexframe, logFile );

	document.exitEditMode();
}

function SpecialMain( x, y, IndexFrame, logFile )
{
	var tl = fl.getDocumentDOM().getTimeline();
	for (var l = 0; l < tl.layerCount; l++) 
	{
		var layer = tl.layers[l];
		/// если не видин слой
		if(!layer.visible)
			continue;
			
		/// мини тест
		frame = tl.layers[l].frames[ IndexFrame % tl.frameCount ]
		if (frame) 
		{
			for(var e = 0; e < frame.elements.length; e++ ) 
			{
				elem = frame.elements[e];

				if(!elem.libraryItem )
					continue;
				//var transPoint = elem.getTransformationPoint();
				//fl.trace("x := " + transPoint.x + " y := " + transPoint.y + " xt := " + elem.transformX + " y := " + elem.transformY );				
	
				var _x = elem.x + x;
				var _y = elem.y + y;
				
				if(elem.instanceType == "symbol")
				{
					//fl.trace("1");
					WriteTOFileMovieClip( logFile, elem, _x, _y, IndexFrame );
					compilationMovieClip2( elem.libraryItem.name, _x, _y, IndexFrame, logFile );
					FLfile.write(logFile,"\n\t\t</MovieClip>", "append" );
				}
				else
				{
					WriteTOFileMovieClip( logFile, elem, _x, _y, IndexFrame );
					WriteToFileImage( logFile, elem, 0, 0, IndexFrame );
					FLfile.write(logFile,"\n\t\t</MovieClip>", "append" );
					fl.trace("name := " + elem.libraryItem.name );
					//fl.trace("3");
				}	
			}
		}
	} 
}

function WriteTOFileMovieClip( logFile, elem, _x, _y, frame )
{
	var mBlendMode = 0;
	var mRed = 255;
	var mGreen = 255;
	var mBlue = 255;
	var mAlpha = 255;
	if(elem.blendMode == "overlay")
		mBlendMode = 1;
	else
		mBlendMode = 0;
		
	fl.trace("ALPHA := " + 	elem.colorAlphaPercent );
	fl.trace("RED := " + 	elem.colorRedPercent );
	fl.trace("GREEN := " + 	elem.colorGreenPercent );
	fl.trace("BLUE := " + 	elem.colorBluePercent );
	
	mAlpha = ( 255 / 100) * elem.colorAlphaPercent;
	mRed   = ( 255 / 100) * elem.colorRedPercent;
	mGreen = ( 255 / 100) * elem.colorGreenPercent;
	mBlue  = ( 255 / 100) * elem.colorBluePercent;

	var transPoint = elem.getTransformationPoint();
	
	fl.trace("tx := " + elem.transformX + " ty := " + elem.transformY );

	FLfile.write(logFile,"\n\t\t<MovieClip ", "append" );
	FLfile.write(logFile," frame=\"" 	+  frame + "\"", "append" );
	FLfile.write(logFile," x=\"" 		+  (_x) + "\"", "append" );
	FLfile.write(logFile," y=\"" 		+  (_y) + "\"", "append" );
	FLfile.write(logFile," centerX=\"" 	+  transPoint.x + "\"", "append" );
	FLfile.write(logFile," centerY=\"" 	+  transPoint.y + "\"", "append" );
	FLfile.write(logFile," scalex=\"" 	+  elem.scaleX + "\"", "append" );
	FLfile.write(logFile," scaley=\"" 	+  elem.scaleY + "\"", "append" );
	FLfile.write(logFile," rotation=\"" +  elem.rotation + "\"", "append" );
	FLfile.write(logFile," alpha=\"" 	+  mAlpha + "\"", "append" );
	FLfile.write(logFile," blendMode=\"" 	+  mBlendMode + "\"", "append" );
	FLfile.write(logFile," red=\"" 		+  mRed + "\"", "append" );
	FLfile.write(logFile," green=\"" 	+  mGreen + "\"", "append" );
	FLfile.write(logFile," blue=\"" 	+  mBlue + "\"", "append" );
	FLfile.write(logFile," >", "append" );
}

function WriteToFileImage( logFile, elem, _x, _y, frame )
{
	fl.trace("MovieClip name := " + elem.libraryItem.name + " x:= " +  (_x) +  " y:= " +  (_y) );
	fl.trace("tx := " + elem.transformX + " ty := " + elem.transformY );
	fl.trace(" x := " + elem.x + " y := " + elem.y );

	var transPoint = elem.getTransformationPoint();

	FLfile.write(logFile,"\n\t\t\t<Element ", "append" );
	FLfile.write(logFile," name=\"" 	+  elem.libraryItem.name + "\"", "append" );
	FLfile.write(logFile," x=\"" 		+  (_x) + "\"", "append" );
	FLfile.write(logFile," y=\"" 		+  (_y) + "\"", "append" );
	FLfile.write(logFile," centerX=\"" 	+  elem.x + "\"", "append" );
	FLfile.write(logFile," centerY=\"" 	+  elem.y + "\"", "append" );
	FLfile.write(logFile," />", "append" );
}


function compilationMovieClip2( name, x, y, IndexFrame, logFile )
{
	var document = fl.getDocumentDOM();
	document.library.editItem( name );
	
	var tl = fl.getDocumentDOM().getTimeline();
	for (var l = 0; l < tl.layerCount; l++) 
	{
		var layer = tl.layers[l];
		/// если не видин слой
		if(!layer.visible)
			continue;
			
		/// мини тест
		frame = tl.layers[l].frames[ IndexFrame % tl.frameCount ]
		if (frame) 
		{
			for(var e = 0; e < frame.elements.length; e++ ) 
			{
				elem = frame.elements[e];

				if(!elem.libraryItem )
					continue;
					
				var _x = elem.x + x;
				var _y = elem.y + y;
				
				if(elem.instanceType == "symbol")
				{
					fl.trace("1");
					WriteTOFileMovieClip( logFile, elem, _x, _y, IndexFrame );
					compilationMovieClip2( elem.libraryItem.name, _x, _y, IndexFrame, logFile );
					FLfile.write(logFile,"\n\t\t</MovieClip>", "append" );
				}
				else
				{
					WriteToFileImage( logFile, elem, _x, _y, IndexFrame );
					fl.trace("name := " + elem.libraryItem.name );
					fl.trace("3");
				}	
			}
		}
	} 

	document.exitEditMode();
}
хочеься услышать мнение людей которые не по наслышки знаю jsfl и моглибы укзать что так перегружает скрипт что заставляет ide пропускать кадры...

запускаю через run command...

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

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

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


 


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


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