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

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

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

Регистрация: Mar 2008
Сообщений: 33
По умолчанию Советы начинающим: Прелоадер. Подгрузка SWF файла. Изменение вида курсора.

Здравствуйте!

Крайне необходимы ваши советы и где-то, конечно, помощь.
Как начинающий, думаю мне не имеет особого смысла начинать изучать старые версии ActionScript . Но неприятность, как вы и без меня знаете, заключается в том, что для новой третьей версии достаточно мало примеров и туториалов, как в общем и литературы, что нельзя сказать про предыдущие версии(для последних в нэте примеров тонны, выбирай – не хочу). Если для людей бывалых, это не составляет особой проблемы, то для новичков, а в особенности, кто до этого вообще практически программированием не занимался, это является весомым препятствием для скорейшего усвоения материала. Как студенту, мне данный момент особенно критичен.
Поэтому прошу вашего содействия, т.к. темы которые я хотел бы поднять(поиск тщательно использовался, не говоря уже о таком же изучении ФАКа с правилами), по моему скромному мнению, достаточно начального уровня и как мне кажется не займут много вашего внимания и будут крайне полезными как для меня, так и для других новичков.
Ну, начнём по пунктам:

1)Прелоадер.

По примеру( http://flasher.ru/forum/showthread.p...147#post535147 ) в факе сделал прелоадер. Но имеется неприятная проблема, а точнее две. Первая. Показ SWFмувика, который усердно подгружал прелоадер, начинается не с первого, а с того кадра , как если отнять время предзагрузки от общего время демонстрации SWFролика. То есть, проще говоря, такое ощущение, что мувик начинает проигрывание во время работы прелоадера. А когда предзагрузка заканчивается, отображается только оставшееся время проигрывания. Вот линк с примером( http://www.zone-rouge.net/pln/01.html ), который наглядно покажет, что я имею в виду.
После первой загрузки отобразится только последняя секунда-две ролика. А если потом обновить страницу, то уже из кэша ролик подгрузится сразу и проигрывание будет корректным. Подскажите, что необходимо добавить в код чтобы убрать данную засаду?
И вторая засада. В самом начале, ещё до появления загрузчика, появляется белый кадр на пол секунды, максимум одну. От чего зависит это? Без прелоадера такого белого кадра не наблюдается, но и ролик «тупит», т.к. до конца не загрузился.
SWFка представляет из себя простое чередование растровых изображений.
Вот линк на все исходники. http://www.zone-rouge.net/pln/test.rar
А ниже сам код прелоадера. Отличия от примера минимальны, но думаю всё же лучше скопировать его сюда.

Код:
package {
	import flash.display.Sprite; 
	import flash.display.Loader; 
	import flash.display.LoaderInfo; 
	import flash.text.TextField;
	import flash.text.TextFormat;
	import flash.text.TextFieldAutoSize; 
	import flash.net.URLRequest; 
	import flash.events.Event;
	import flash.events.ProgressEvent; 
	
	public class Test extends Sprite {
		private var loader:Loader = new Loader();
		private var loadStatus:TextField = new TextField();
		private var textformat:TextFormat = new TextFormat;
		private var request:URLRequest = new URLRequest("mc01.swf");
		
		public function Test() {
			loader.load(request);					loader.contentLoaderInfo.addEventListener(Event.OPEN,displayPreloader);				loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,updatePreloader);		loader.contentLoaderInfo.addEventListener(Event.COMPLETE,displayImage);
		} 
			private function displayPreloader(evt:Event):void {
			loadStatus.autoSize = TextFieldAutoSize.LEFT;
			addChild(loadStatus);
			
		}
		
		private function updatePreloader(evt:ProgressEvent):void {
			
			loadStatus.text = "loaded:"+evt.bytesLoaded+" from "+evt.bytesTotal;
			loadStatus.x = 250;
			loadStatus.y = 150;
			textformat.font = "Helvetica";
			textformat.color = 0xFF0000;
			textformat.size = 24;
			loadStatus.setTextFormat(textformat);
			
			
			
		}
		
		private function displayImage(evt:Event):void {
			removeChild(loadStatus);
			addChild(loader);
		}		
	}
}


2)Подгрузка SWF файла

Есть необходимость по окончании проигрывания SWFфайла о котором шла речь выше, подгрузить(отобразить) другой SWFфайл(меню сайта с кнопками и тому подобное), при этом выгрузить первый.


3)Изменение вида курсора.

В моём случае хочется сделать курсор следующего вида. Две перпендикулярных пересекающиеся(разумеется под прямым углом) линии, начинающиеся от сторон периметра объекта и пересекаются в месте предполагаемого курсора. При перемещении курсора, координаты их пересечения соответственно изменяются. Т.е. пересечение это и будет являться индикатором курсора, вертикальная линия перемещается по горизонтали, а горизонтальная, соответственно, по вертикали. А объект представляет из себя либо область отображения(stage), либо мувиклип неправленой формы размером чуть меньше области отображения, в случае с мивиклипом, линии, разумеется, не должны выходить за его периметр. Но если курсор выходит за пределы периметра, то он становится обычной мышиной стрелкой, а пересечение линий бы оставалось в том месте внутри периметра, где в последний раз находился курсор и как только курсор возвращается в периметр он обратно становится интерактивным пересечением линий. Конечно, хочется увидеть примеры кода для обоих случаев, как для мувика так и для всего стейджа. Приведу наглядный пример: мувиклип представляет из себя видоискатель бинокля овальной формы, как в играх. Когда в него видна цель, она фиксируется на видоискателе двумя пересекающимися линиями. В нашем случае цель, - это курсор.

Я надеюсь, объяснения мои были предельно ясны и благодарю за уделённое этой теме внимание.

Буду крайне признателен, за любую помощь.

PS поиск использовал, но всё же, есть вероятность, что, что-то пропустил. В любом случае эта тема достаточно индивидуальна, но тем не менее я уверен, что она будет полезна не только мне.

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

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

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


 


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


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