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

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

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

Регистрация: May 1999
Адрес: Казахстан, Алматы
Сообщений: 85
Отправить сообщение для fancy с помощью ICQ
Attention мп3 проигрыватель. (ошибки, оптимизация веса)

Написали плеер.
плеер мп3 у клиента он же тот же плеер только музыка другая вставлена

Проблем существует несколько:
1. По какой-то странной причине, плеер работает везде, кроме клиента. Если, кому не сложно тестаните, буду признателен, если можно дайте ответ по обоим. Играют не играют.

2. Плеер векторный, написан на AS3 но весит нереально дофига 260кб. приэтом я не понимаю почему. Возможно из-за импортированных в него компонент.

Инфа о треках береться здесь

Помогите пожалуйста, моих нервов не хватает на общение с клиентами
__________________
Жить хорошо, когда вокруг столько интересного....


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

Регистрация: May 1999
Адрес: Казахстан, Алматы
Сообщений: 85
Отправить сообщение для fancy с помощью ICQ
его код
Код:
package
{
	import flash.display.*;
	import flash.net.*;
	import flash.events.*;
	import flash.text.*;
	import flash.utils.*;
	import flash.media.*;
	import flash.ui.*;
	import fl.controls.*;
	import fl.data.*;
	import fl.events.*;
	
	public class player extends MovieClip
	{
		// url prefix
		//var urlPrefix:String = "http://localhost/eurasia/audio/";
		//var urlPrefix:String = "http://temp.pertsev.com/eurasia/audio/";
		var urlPrefix:String = "http://webtest.softdeco.net/eurasia/audio/";
		//var urlPrefix:String = "../";
		
		// all player data
		var dataXML:XML = null;
		
		// compositions list related
		var compoListOpened:Boolean = true;
		var compoListCloseInterval, compoListOpenInterval:Number = 0;
		
		// current radio type
		var radioType:String = "Тарантайка дэйли";

		// sound related things
		var soundObject:Sound = new Sound();
		var soundChannel:SoundChannel = null;
		var soundTrans:SoundTransform = new SoundTransform();
		// update interval
		var soundUpdateInterval:Number = 0;
		// information about sound
		var soundLengthRaw:String = "";
		var soundLengthSecs:Number = 0;
		var soundIsPlaying:Boolean = false;
		var soundIsPaused:Boolean = false;
		var soundPausePosition:Number = 0;
		
		// images for sound
		var images:Array = new Array();
		var imageCurrentIndex:Number = 0;
		var hasImages:Boolean = false;
		
		var volumeDrag:Boolean = false;
		
		// helper arrays
		var arrayRadio1:Array = new Array();
		var arrayRadio2:Array = new Array();
		var currentTrack:Object = null;
		
		var firstRun:Boolean = true;
		
		// default constructor
		public function player()
		{
			prepareData();
			prepareTestingFeatures();
			prepareContextMenu();
			prepareButtons();
			prepareCompoList();
			prepareTrackBar();
			prepareVolumeSlider();
		}
		
		protected function prepareTestingFeatures():void
		{

		}
		
		protected function prepareContextMenu():void
		{
			function item1MenuItemSelectHandler(event:ContextMenuEvent):void
			{
				var urlRequest:URLRequest = new URLRequest("http://pertsev.com");           
				navigateToURL(urlRequest);
			}
			
			//function item2MenuItemSelectHandler(event:ContextMenuEvent):void
			//{
				//var urlRequest:URLRequest = new URLRequest("http://pertsev.com");           
				//navigateToURL(urlRequest);
			//}
			
			var item1:ContextMenuItem = new ContextMenuItem("a`pertsev design — студия дизайна Александра Перцева");
			//var item2:ContextMenuItem = new ContextMenuItem("Код: resurtm (e-mail: resurtm@gmail.com)");
			
			item1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, item1MenuItemSelectHandler);
			//item2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, item2MenuItemSelectHandler);
			
			var contMenu:ContextMenu = new ContextMenu();
			contMenu.customItems.push(item1);
			//contMenu.customItems.push(item2);
			contMenu.hideBuiltInItems();
			this.contextMenu = contMenu;
		}
		
		// prepare all buttons in gui
		protected function prepareButtons():void
		{
			// play and stop buttons
			playButton.visible = true;
			stopButton.visible = false;
			
			function playButtonClickHandler(event:MouseEvent):void
			{
				if (!soundIsPlaying)
				{
					if (!soundIsPaused)
						soundChannel = soundObject.play(0, 0, soundTrans);
					else
					{
						soundChannel = soundObject.play(soundPausePosition, 0, soundTrans);
						soundIsPaused = false;
					}
					
					soundChannel.addEventListener(Event.SOUND_COMPLETE, soundChannelSoundCompleteHandler);
					soundIsPlaying = true;
				}
			}
			
			function stopButtonClickHandler(event:MouseEvent):void
			{
				if (soundIsPlaying)
				{
					soundPausePosition = soundChannel.position;
					soundChannel.stop();
					soundIsPlaying = false;
					soundIsPaused = true;
				}
			}
			
			playButton.addEventListener(MouseEvent.CLICK, playButtonClickHandler);
			stopButton.addEventListener(MouseEvent.CLICK, stopButtonClickHandler);
			
			// radio tabs
			function radioTab1ClickHandler(event:MouseEvent):void
			{
				compoList.radioTab1.gotoAndStop(1);
				compoList.radioTab2.gotoAndStop(2);
				radioType = "Тарантайка дэйли";
				updateData();
			}
			
			function radioTab2ClickHandler(event:MouseEvent):void
			{
				compoList.radioTab1.gotoAndStop(2);
				compoList.radioTab2.gotoAndStop(1);
				radioType = "Две жизни спустя";
				updateData();
			}
			
			compoList.radioTab1.addEventListener(MouseEvent.CLICK, radioTab1ClickHandler);
			compoList.radioTab2.addEventListener(MouseEvent.CLICK, radioTab2ClickHandler);
			
			compoList.radioTab1.gotoAndStop(1);
			compoList.radioTab2.gotoAndStop(2);
			
			// close button
			function compoListCloseIntervalHandler():void
			{
				compoList.x += (405.0 - compoList.x) * 0.2;
				if (compoList.x > 400.0)
					clearInterval(compoListCloseInterval);
			}
			
			function compoListOpenIntervalHandler():void
			{
				compoList.x += (136.7 - compoList.x) * 0.2;
				if (compoList.x < 141.7)
					clearInterval(compoListOpenInterval);
			}
			
			function closeButtonClickHandler(event:MouseEvent):void
			{
				if (compoListOpened)
				{
					compoList.closeArrow.rotation = 180;
					compoListOpened = false;
					compoListCloseInterval = setInterval(compoListCloseIntervalHandler, 50);
				}
				else
				{
					compoList.closeArrow.rotation = 0;
					compoListOpened = true;
					compoListOpenInterval = setInterval(compoListOpenIntervalHandler, 50);
				}
			}
			
			compoList.closeButton.addEventListener(MouseEvent.CLICK, closeButtonClickHandler);
			
			// next and prev buttons
			function prevButtonClickHandler(event:MouseEvent):void
			{
				if (event.stageX < 314.6 || event.stageX > 346.6 ||
					event.stageY < 118.4 || event.stageY > 150.8)
					return;
				if (currentTrack == null)
					return;
				//trace("test1");
				
				var gotoIndex:Number = -1;
				if (radioType == "Тарантайка дэйли")
				{
					for (var i:Number = 0; i < arrayRadio1.length; i++)
						if (arrayRadio1[i].name == currentTrack.name &&
							arrayRadio1[i].comment == currentTrack.comment)
							gotoIndex = i - 1;
					if (gotoIndex != -1 && gotoIndex != arrayRadio1.length)
					{
						listItemClickHandler(new ListEvent("itemClick", false, false, -1, -1, -1, arrayRadio1[gotoIndex]));
						compoList.list.scrollToIndex(gotoIndex);
					}
				}
				if (radioType == "Две жизни спустя")
				{
					for (var i:Number = 0; i < arrayRadio2.length; i++)
						if (arrayRadio2[i].name == currentTrack.name &&
							arrayRadio2[i].comment == currentTrack.comment)
							gotoIndex = i - 1;
					if (gotoIndex != -1 && gotoIndex != arrayRadio2.length)
					{
						listItemClickHandler(new ListEvent("itemClick", false, false, -1, -1, -1, arrayRadio2[gotoIndex]));
						compoList.list.scrollToIndex(gotoIndex);
					}
				}
			}
			
			function nextButtonClickHandler(event:MouseEvent):void
			{
				if (currentTrack == null)
					return;
				if (event.stageX < 601.4 || event.stageX > 634.2 ||
					event.stageY < 118.4 || event.stageY > 150.8)
					return;
				//trace("test2");
				
				var gotoIndex:Number = -1;
				if (radioType == "Тарантайка дэйли")
				{
					for (var i:Number = 0; i < arrayRadio1.length; i++)
						if (arrayRadio1[i].name == currentTrack.name &&
							arrayRadio1[i].comment == currentTrack.comment)
							gotoIndex = i + 1;
					if (gotoIndex != -1 && gotoIndex != arrayRadio1.length)
					{
						listItemClickHandler(new ListEvent("itemClick", false, false, -1, -1, -1, arrayRadio1[gotoIndex]));
						compoList.list.scrollToIndex(gotoIndex);
					}
				}
				if (radioType == "Две жизни спустя")
				{
					for (var i:Number = 0; i < arrayRadio2.length; i++)
						if (arrayRadio2[i].name == currentTrack.name &&
							arrayRadio2[i].comment == currentTrack.comment)
							gotoIndex = i + 1;
					if (gotoIndex != -1 && gotoIndex != arrayRadio2.length)
					{
						listItemClickHandler(new ListEvent("itemClick", false, false, -1, -1, -1, arrayRadio2[gotoIndex]));
						compoList.list.scrollToIndex(gotoIndex);
					}
				}
			}
			
			prevButtonZone.addEventListener(MouseEvent.CLICK, prevButtonClickHandler);
			nextButtonZone.addEventListener(MouseEvent.CLICK, nextButtonClickHandler);
			
			prevButton.visible = false;
			nextButton.visible = false;
			
			prevButtonZone.addEventListener(MouseEvent.ROLL_OVER, function() { prevButton.visible = true; } );
			prevButtonZone.addEventListener(MouseEvent.ROLL_OUT, function() { prevButton.visible = false; } );
			
			nextButtonZone.addEventListener(MouseEvent.ROLL_OVER, function() { nextButton.visible = true; } );
			nextButtonZone.addEventListener(MouseEvent.ROLL_OUT, function() { nextButton.visible = false; } );
		}
		
		// prepare compositions list
		protected function prepareCompoList():void
		{
			//var myCalibri:Font = new MyCalibri();
			var textFormat:TextFormat = new TextFormat();
			//textFormat.font = "Calibri";
			//textFormat.font = myCalibri.fontName;	
			textFormat.size = 10;
			textFormat.color = 0xFFFFFF;
			
			compoList.list.setRendererStyle("disabledTextFormat", textFormat);
			compoList.list.setRendererStyle("textFormat", textFormat);
			compoList.list.setRendererStyle("embedFonts", false);
						
			compoList.list.addEventListener(ListEvent.ITEM_CLICK, listItemClickHandler);
		}
		
			function listItemClickHandler(event:ListEvent):void
			{
				soundLengthRaw = String(event.item.length_raw);
				soundLengthSecs = Number(event.item.length_secs);
				
				if (soundIsPlaying)
				{
					soundChannel.stop();
					soundIsPlaying = false;
				}
				
				if (soundObject.bytesTotal != soundObject.bytesLoaded)
					soundObject.close();
					
				soundObject = null;
				soundObject = new Sound();
				soundObject.load(new URLRequest(urlPrefix + "data/" + event.item.audio), new SoundLoaderContext(2000));
				
				soundChannel = soundObject.play(0, 0, soundTrans);
				//soundChannel.stop();
__________________
Жить хорошо, когда вокруг столько интересного....


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

Регистрация: May 1999
Адрес: Казахстан, Алматы
Сообщений: 85
Отправить сообщение для fancy с помощью ICQ
продолжение кода
Код:
				
				// remove pause state
				soundIsPlaying = true;
				soundIsPaused = false;
				soundPausePosition = 0;
				
				soundChannel.addEventListener(Event.SOUND_COMPLETE, soundChannelSoundCompleteHandler);
				
				// update images array
				//if (hasImages)
					updateImages(event.item.name, event.item.comment);
					
				//if (!hasImages)
				{
					//trace(screen.getChildByName("loader"));
					var loaderClip:DisplayObject = screen.getChildByName("loader");
					if (loaderClip != null)
						screen.removeChild(loaderClip);
				}
				
				// set comment
				track.comment.text = event.item.comment;
				
				currentTrack = event.item;
				
				clearInterval(soundUpdateInterval);
				soundUpdateInterval = setInterval(soundUpdateIntervalHandler, 100);
				
				radioType = radioType;
			}
			
			function soundUpdateIntervalHandler():void
			{
				// update loading progress bar
				track.cachedBar.width = (Math.round(soundObject.bytesLoaded) / Math.round(soundObject.bytesTotal)) * 273;
				
				// update playing progress bar
				track.position.x = track.time.x = (soundChannel.position / (soundLengthSecs * 1000)) * 273;
				track.time.x -= 19;
				
				var timeMinutes:String = String(Math.floor(soundChannel.position / 59500));
				var timeSeconds:String = String(Math.round(soundChannel.position / 1000) % 60);
				
				if (timeSeconds.length == 1)
					timeSeconds = "0" + timeSeconds;
			
				track.time.text = timeMinutes + ":" + timeSeconds;
				
				// update buttons state
				if (!soundIsPlaying)
				{
					playButton.visible = true;
					stopButton.visible = false;
				}
				else
				{
					playButton.visible = false;
					stopButton.visible = true;
				}
				
				// update images
				//trace(images[imageCurrentIndex].time_secs + " > " + soundChannel.position / 1000);
				//trace(imageCurrentIndex);
				//if (hasImages)
				if (imageCurrentIndex < images.length - 1)
					if (images[imageCurrentIndex].time_secs < soundChannel.position / 1000)
					{
						var loaderClip:DisplayObject = screen.getChildByName("loader");
						if (loaderClip != null)
							screen.removeChild(loaderClip);
						
						var loader:Loader = new Loader();
						var urlRequest:URLRequest = new URLRequest(urlPrefix + "data/" + images[imageCurrentIndex].image);
						loader.load(urlRequest);
						loader.x = -345 / 2.0;
						loader.y = -189 / 2.0;
						loader.name = "loader";
						screen.addChild(loader);
					
						imageCurrentIndex++;
					}
			}
		
		// prepare track bar
		protected function prepareTrackBar():void
		{
			function trackClickHandler(event:MouseEvent):void
			{
				var newPosition:Number = (event.stageX - 357.6) / 273 * soundLengthSecs * 1000;
				
				soundChannel.stop();
				soundChannel = soundObject.play(newPosition, 0, soundTrans);
				soundIsPlaying = true;
				
				soundChannel.addEventListener(Event.SOUND_COMPLETE, soundChannelSoundCompleteHandler);
				
				// handle images displaying
				//if (hasImages)
				{
					imageCurrentIndex = 0;
					for (var i:Number = 0; i < images.length; i++)
					{
						if (images[i].time_secs > soundChannel.position / 1000)
						{
							imageCurrentIndex = i - 1;
							break;
						}
					}
				}
			}
			
			track.addEventListener(MouseEvent.CLICK, trackClickHandler);
		}
		
		protected function prepareVolumeSlider():void
		{
			function bgBigMouseMoveHandler(event:MouseEvent):void
			{
				if (volumeDrag)
				{
					var newX:Number = event.stageX - volumeBar.x;
					
					if (newX > 40.1 || newX < -0.1)
						return;
					
					volumeBar.track.x = newX;
					volumeBar.percent.x = newX - 15;
			
					var volPercent = volumeBar.track.x / 40;
					volumeBar.percent.text = Math.round(volPercent * 100) + "%";
					
					soundTrans.volume = volPercent;
					if (soundIsPlaying)
						soundChannel.soundTransform = soundTrans;
				}
			}
			
			volumeBar.bgBig.addEventListener(MouseEvent.MOUSE_DOWN, function() { volumeDrag = true; } );
			volumeBar.bgBig.addEventListener(MouseEvent.MOUSE_UP, function() { volumeDrag = false; } );
			volumeBar.bgBig.addEventListener(MouseEvent.MOUSE_OUT, function() { volumeDrag = false; } );
			volumeBar.bgBig.addEventListener(MouseEvent.MOUSE_MOVE, bgBigMouseMoveHandler);
			
			// prepare values
			var volPercent = volumeBar.track.x / 40;
			volumeBar.percent.text = Math.round(volPercent * 100) + "%";
	
			soundTrans.volume = volPercent;
			//soundChannel.soundTransform = soundTrans;
		}
		
		// prepare all data in player
		protected function prepareData():void
		{
			// load xml with all data
			function urlLoaderCompleteHandler(event:Event):void
			{
				dataXML = new XML(event.target.data);
				updateData();
			}
			
			var urlLoader:URLLoader = new URLLoader();
			urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);
			urlLoader.load(new URLRequest(urlPrefix + "admin/xml.php"));
		}
		
		// update all data in player and gui
		protected function updateData():void
		{
			// parse xml and add data into list
			var children:XMLList = dataXML.children();
			var dataProv:DataProvider = new DataProvider();
			
			arrayRadio1 = arrayRadio2 = null;
			arrayRadio1 = new Array();
			arrayRadio2 = new Array();
			
			for (var i:Number = 0; i < children.length(); i++)
			{
				var obj:Object = new Object();
				obj.label = children[i].attribute("date") + "  " + children[i].attribute("name") + "   " + children[i].attribute("length_raw");
				obj.name = children[i].attribute("name");
				obj.comment = children[i].attribute("comment");
				obj.date = children[i].attribute("date");
				obj.time = children[i].attribute("time");
				obj.radio = children[i].attribute("radio");
				obj.audio = children[i].attribute("audio");
				obj.length_raw = children[i].attribute("length_raw");
				obj.length_secs = children[i].attribute("length_secs");
				
				if (radioType == children[i].attribute("radio"))
					dataProv.addItem(obj);
					
				if (children[i].attribute("radio") == "Тарантайка дэйли")
					arrayRadio1.push(obj);
				else if (children[i].attribute("radio") == "Две жизни спустя")
					arrayRadio2.push(obj);
			}
			
			compoList.list.dataProvider = dataProv;
			//trace(arrayRadio1);
			//trace(arrayRadio2);
			
			// prevent play error at startup
			if (firstRun)
			{
				listItemClickHandler(new ListEvent("itemClick", false, false, -1, -1, 0, arrayRadio1[0]));
				if (soundIsPlaying)
				{
					soundPausePosition = soundChannel.position;
					soundChannel.stop();
					soundIsPlaying = false;
					soundIsPaused = true;
				}
				
				firstRun = false;
			}
		}
		
		protected function updateImages(compoName:String, compoComment:String)
		{
			var children:XMLList = dataXML.children();
			var dataProv:DataProvider = new DataProvider();
			
			imageCurrentIndex = 0;
			var arrayLoaded:Boolean = false;
			
			for (var i:Number = 0; i < children.length(); i++)
			{
				if (compoName != children[i].attribute("name") &&
					compoComment != children[i].attribute("comment"))
					continue;
				
				images = new Array();
				var imageNodes = children[i].children();
				
				if (imageNodes.length() == 0)
				{
					hasImages = false;
					break;
				}
				hasImages = true;
				
				for (var j:Number = 0; j < imageNodes.length(); j++)
				{
					obj = new Object();
					obj.id = imageNodes[j].attribute("id");
					obj.compo_id = imageNodes[j].attribute("compo_id");
					obj.time = imageNodes[j].attribute("time");
					obj.image = imageNodes[j].attribute("image");
					obj.time_secs = imageNodes[j].attribute("time_secs");
					images.push(obj);
				}
				
				var obj = new Object();
				obj.id = 999999;
				obj.compo_id = imageNodes[0].attribute("compo_id");
				obj.time = "9999:9999";
				obj.image = "";
				obj.time_secs = 999999;
				images.push(obj);
				
				arrayLoaded = true;
				break;
			}
			
			if (arrayLoaded)
				images.sortOn("time_secs", Array.NUMERIC);
		}
		
		function soundChannelSoundCompleteHandler(event:Event):void
		{
			soundIsPlaying = false;
			soundChannel = soundObject.play(0, 0, soundTrans);
			soundChannel.stop();
			
			soundIsPaused = false;
			soundPausePosition = 0;
		}
	}
}
__________________
Жить хорошо, когда вокруг столько интересного....


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

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
компоненты это зло плеер весит написанный в ручную с нуля весит мизер.
ошибка возникает при передвигании ползунка. мой плеер весит 4 кб)
здесь можете глянуть? он не доделан но не значительно потолстеет думаю.

http://www.truedomen.tu2.ru/music2/

а у клиента может не работать потому что версия старая или у него в кеше лежит старая неработающая версия в таком случае нужно чистить кэш


да и кто пишет такие вещи в один класс О_о

Старый 03.09.2008, 20:57
vic_ вне форума Посмотреть профиль Отправить личное сообщение для vic_ Посетить домашнюю страницу vic_ Найти все сообщения от vic_
  № 5  
Ответить с цитированием
vic_
 
Аватар для vic_

Регистрация: Sep 2006
Адрес: Zaporozhye, Ukraine
Сообщений: 141
посмотрел, работают оба

update:
Если играться с ползунком вылазит ошибка
Код:
TypeError: Error #1010: A term is undefined and has no properties.
	at player/soundUpdateIntervalHandler()
	at Function/http://adobe.com/AS3/2006/builtin::apply()
	at <anonymous>()
	at SetIntervalTimer/onTimer()
	at flash.utils::Timer/_timerDispatch()
	at flash.utils::Timer/tick()


Последний раз редактировалось vic_; 03.09.2008 в 21:01.
Старый 03.09.2008, 21:08
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 6  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Подтверждаю, что отписал vic_.
__________________
john

Старый 03.09.2008, 21:22
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 7  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Ембедные шрифты тоже весу добавляют
__________________
тонкий тролль, осеянный благодатью

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

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

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


 


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


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