TextBannerRotator - простой ротатор текстовых баннеров с эффектом BLUR.
Эффект BLUR (размытие) является простейшим базовым фильтром FLASH. Наряду с эффектами DropShadow (тень), GLOW (свечение) и Gradient (перелив цветов). Эти базовые фильтры присутствуют и в инструменте рисования Flash Professional и часто применяются непосредственно во флеш-коде. Пример эффекта GLOW вы можете посмотреть в моем OpenSource Freeware FotoSlider on Flex 3 and jQuery.
Более ли менее стандартным демо-применением эффекта BLUR можно считать вот этот пример из букварика. А на баннере сверху вы видите как этот эффект укладывается в моей голове.
Есть два варианта использования моего баннерного ротатора - в режиме статически загруженного рекламного контента и в режиме контента, динамически получаемого с сервера. Для статических сайтов (типа этой моей домашней странички) дергать каждый раз сервер за свежим контентом бессмысленно. Я пишу в свой блог скажем одну заметку в неделю. И даже если баннер не будет показывать мои заметки за последние полгода - ничего не изменится. Другое дело - форум с активно-меняющимся контентом. Тогда есть смысл вычитывать текущий топовый контент динамически. Для этого можно применить любой из хандлеров, описанных на страничке - Как сделать простейший Web-handler - формирующий XML или JSON.
Чтобы распарсить JSON возьмите адобовскую библиотеку as3corelib.swc и сделайте JSON.decode вот так:
1: <fx:Declarations>
2: <!-- Place non-visual elements (e.g., services, value objects) here -->
3: <mx:HTTPService id="GetSiteTopic" url="http://pencil.vb-net.com/GetSiteTopic.ashx" useProxy="false"
4: method="GET" resultFormat="text" result="GetSiteTopic_ResultHandler(event)">
5: </mx:HTTPService>
6: </fx:Declarations>
Итак, ниже я покажу вам свой код моего флеш баннера, который вы видите сверху этой странички (в варианте со статическим контентом). Это сверхкомпактный баннерный ротатор обьемом менее 10 килобайт.
1: package
2: {
3: import flash.display.Sprite;
4: import flash.events.Event;
5: import flash.events.MouseEvent;
6: import flash.filters.BitmapFilterQuality;
7: import flash.filters.BlurFilter;
8: import flash.filters.GlowFilter;
9: import flash.geom.ColorTransform;
10: import flash.text.TextField;
11: import flash.text.TextFormat;
12:
13: [SWF(width="800", height="50", frameRate="24", backgroundColor="#FFFFFF")]
14: public class TextBannerRotator extends Sprite
15: {
16: private var SPEED:Number=0.05;
17: private var FONT_SIZE:int=20;
18: private var WIDTH:int=800;
19: private var PEN_RADIUS:uint=10;
20: private var FONT_COLOR:uint=0x000000;
21: private var TEXT_LIFETIME:int=100;
22: private var DEBUG_MASK:Boolean=false;
23: private var DEBUG_TEXT:Boolean=false;
24:
25: private var NewText:TextField;
26: private var OldText:TextField;
27: private var OldMask:Sprite;
28: private var NewMask:Sprite;
29: private var Pen:Sprite;
30:
31:
32:
33: public function TextBannerRotator():void
34: {
35: InitBannerRotator();
36: }
37:
38: protected function InitBannerRotator():void
39: {
40: PrepareStage(stage);
41: }
42:
43: protected function PrepareStage(Stage1:Object):void
44: {
45: NewText=new TextField();
46: OldText=new TextField();
47:
48: OldMask=CreateMask(0,0x00ff00, (!DEBUG_MASK) ? 0: 50 );
49: NewMask=CreateMask(0,0x0000ff, (!DEBUG_MASK) ? 0: 100);
50:
51: Stage1.addChild(NewMask);
52: Stage1.addChild(OldMask);
53:
54: if (!DEBUG_MASK){OldText.mask=OldMask;}
55: Stage1.addChild(OldText);
56:
57: if (!DEBUG_MASK){NewText.mask=NewMask;}
58: Stage1.addChild(NewText);
59:
60: Pen=CreatePen(0x0000FF, 0 , FONT_SIZE/1.8, PEN_RADIUS);
61: Pen.visible=false;
62: Stage1.addChild(Pen);
63:
64: FrameCount=TEXT_LIFETIME-1;
65: Stage1.addEventListener(Event.ENTER_FRAME, Animate );
66:
67: Stage1.addEventListener(MouseEvent.MOUSE_OVER, ReadyLink);
68: Stage1.addEventListener(MouseEvent.MOUSE_OUT, DisableLink);
69: //Stage1.addEventListener(MouseEvent.MOUSE_WHEEL, RotateText);
70:
71: RandomSortTopic();
72: }
73:
74: private var FrameCount:int=0;
75: private var ChangeProcessCount:Number=0;
76: private var Speed:Number=0;
77: private var Changing:Boolean=false;
78: private var DividePosition:int=0;
79: private var TextIndex:int=0;
80:
81: private function Animate(e:Event):void {
82: FrameCount++;
83: if ((FrameCount%TEXT_LIFETIME)==0) {
84: //пора сменить текст (если он не меняется сейчас)
85: if (!Changing){
86: Changing=true;
87: Pen.visible=true;
88: ChangeProcessCount =0;
89: DividePosition = 0;
90: Speed=0;
91: var ct:ColorTransform = new ColorTransform();
92: ct.color = uint.MAX_VALUE*Math.random();
93: Pen.transform.colorTransform = ct;
94: Pen.visible=true;
95: Pen.filters=[];
96: if (DEBUG_MASK){
97: OldMask.visible=true;
98: NewMask.visible=true;
99: }
100: //загрузить новый текст на анимированные маски
101: var OldFormat:TextFormat=NewText.getTextFormat();
102: SetText(OldText, NewText.text,OldFormat.url,OldFormat.color as uint);
103: SetText(NewText, GetNextText(),GetNextUrl(),ct.color);
104: }
105: }
106: if (Changing){
107: if (DividePosition<WIDTH+FONT_SIZE){
108: //сдвигаем маску
109: ChangeProcessCount +=1;
110: Speed += ChangeProcessCount*SPEED;
111: DividePosition=ChangeProcessCount*Speed;
112: Pen.x = DividePosition;
113: OldMask.x = DividePosition;
114: NewMask.width = DividePosition;
115: var PenBlur:BlurFilter=new BlurFilter(Speed*2,Speed*2);
116: Pen.filters=[PenBlur];
117: NewText.filters=[];
118: var TextBlur:BlurFilter=new BlurFilter(WIDTH/DividePosition,WIDTH/DividePosition);
119: NewText.filters=[TextBlur];
120: }
121: else{
122: //смена текущего текста закончена
123: ChangeProcessCount =0;
124: DividePosition = 0;
125: Speed=0;
126: Changing=false;
127: Pen.visible=false;
128: Pen.filters=[];
129: NewText.filters=[];
130: }
131: }
132: }
133:
134: private function CreatePen (color:uint, x:int, y:int, r:int):Sprite {
135: var pen:Sprite=new Sprite();
136: pen.graphics.lineStyle(1,color);
137: pen.graphics.beginFill(color);
138: pen.graphics.drawCircle(x,y,r);
139: pen.graphics.endFill();
140: return pen;
141: }
142:
143: private function CreateMask (X:int, DebugColor:uint=0x0000FF,DebugY:int=0):Sprite{
144: var Mask:Sprite=new Sprite();
145: Mask.graphics.beginFill(DebugColor);
146: Mask.graphics.drawRect(X, DebugY, WIDTH, FONT_SIZE*2);
147: Mask.graphics.endFill();
148: return Mask;
149: }
150:
151: private function SetText(TextBox:TextField,txt:String, url:String, color:uint):void{
152: TextBox.text=txt;
153: TextBox.x = 5;
154: TextBox.width=WIDTH;
155: var Format:TextFormat= new TextFormat()
156: Format.size=FONT_SIZE;
157: Format.color=color;
158: Format.underline=false;
159: Format.url=url;
160: Format.target="_blank";
161: TextBox.setTextFormat(Format);
162: }
163: private function GetNextText():String {
164: if (TextIndex<SiteTopic.Title.length/3-2) {
165: TextIndex++;
166: }
167: else {
168: TextIndex=0;
169: }
170: if (DEBUG_TEXT){
171: return FrameCount.toString();
172: }
173: else {
174: var RealIndex:int = (RandomIndex[TextIndex] as One)._i;
175: return SiteTopic.Title[RealIndex*3+3]
176: }
177: }
178: private function GetNextUrl():String {
179: var RealIndex:int = (RandomIndex[TextIndex] as One)._i;
180: return SiteTopic.Title[RealIndex*3+2]
181: }
182:
183: private function ReadyLink(e:MouseEvent):void{
184: var Format:TextFormat= new TextFormat()
185: Format.size=FONT_SIZE*1.05;
186: Format.color=FONT_COLOR;
187: Format.underline=true;
188: NewText.setTextFormat(Format);
189: OldText.setTextFormat(Format);
190: }
191:
192: private function DisableLink(e:MouseEvent):void{
193: var Format:TextFormat= new TextFormat()
194: Format.size=FONT_SIZE;
195: Format.color=uint.MAX_VALUE*Math.random();
196: Format.underline=false;
197: NewText.setTextFormat(Format);
198: OldText.setTextFormat(Format);
199: }
200:
201: private function RotateText(e:MouseEvent):void{
202: FrameCount=TEXT_LIFETIME-1;
203: if (TextIndex<(SiteTopic.Title.length)/3-2) {
204: TextIndex++;
205: }
206: else {
207: TextIndex=0;
208: }
209: }
210:
211: private var RandomIndex:Array;
212: private function RandomSortTopic():void {
213: RandomIndex=new Array();
214: for (var i:int;i<(SiteTopic.Title.length)/3-1;i++) {
215: RandomIndex.push(new One(i,Math.random()));
216: }
217: RandomIndex.sort(CompareKey);
218: }
219:
220: private function CompareKey(a:One,b:One):Number {
221: if(a._order > b._order) {
222: return 1;
223: } else if(a._order < b._order) {
224: return -1;
225: } else {
226: return 0;
227: }
228: }
229: }
230: }
Кроме этого основного рабочего класса требуется небольшой класс-шаблон для разметки буфера памяти кампутера. Он нужен для сортировки - ибо, согласитесь, тупо прокручивать баннеры в фиксированном порядке.
1: package
2: {
3: public class One
4: {
5: public var _i:int;
6: public var _order:Number;
7: public function One(i:int, order:Number){
8: _i=i;
9: _order=order;
10: }
11: }
12: }
И наконец третий класс моего баннера - собственно контент. В моем баннере он выглядит вот так:
1: package
2: {
3: public class SiteTopic
4: {
5:
6: //http://pencil.vb-net.com/ => Excel => =""""&A1&""","""&B1&""","""&C1&""""
7: static public var Title:Array = [
8: ,"Flex (2010 год)","//www.vb-net.com/Flash_Professional/index.htm","Анимация и программирование в Flash Professional"
9: ,"Flex (2011 год)","//www.vb-net.com/Flex4_Welcome/index.htm","Знакомство с Adobe Flex 4"
10: ,"Flex (2011 год)","//www.vb-net.com/Flex4_Welcome/index.htm","Как с помощью jQuery сделать флеш-ролик резиновым"
11: ,"Flex (2011 год)","//www.vb-net.com/WSQL_SOAP_Service_for_FLEX/index.htm","Как сделать SOAP/WSDL-вебсервис на ASP.NET/MONO для вызова его из FLEX"
12: ,"Flex (2011 год)","//www.vb-net.com/Foto_Slider/index.htm","OpenSource Freeware FotoSlider on Flex 3 and jQuery"
13: ,"Flex (2011 год)","//www.vb-net.com/PaperVision3D_CUBE/index.htm","Трехмерное вдохновение PaperVision3D"
14: ,"Flex (2011 год)","//www.vb-net.com/Flex_Image_Slider/index.htm","Мой первый фото-слайдер на Flex 4"
15: ,"MVC (2010 год)","//www.vb-net.com/mvc_markup/index.htm","Верстка в ASP NET MVC"
16: ,"MVC (2010 год)","//www.vb-net.com/MVC3_step_by_step/index.htm","Мой первый сайт на MVC 3 Razor"
17: ,"MVC (2010 год)","//www.vb-net.com/VS2010/index.htm","Знакомство с Visual Studio 2010"
18: ,"MVC (2011 год)","//www.vb-net.com/WebHandler/index.htm","Как сделать простейший Web-handler - формирующий XML или JSON."
19: ,"MVC (2011 год)","//www.vb-net.com/AutoComplete/index.htm","AJAX подсказка/автозаполнение на jQuery"
20: ,"MONO (2009 год)","//www.vb-net.com/MySQL/index.htm","Используем MySQL вместо MS SQL в проектах на ASP.NET"
21: ,"MONO (2009 год)","//www.vb-net.com/PostgreSQL/index.htm","Используем PostgreSQL вместо MS SQL в проектах на .NET и ASP.NET"
22: ,"MONO (2010 год)","//www.vb-net.com/LowCostAspNet/index.htm","Low cost and platform independent ASP.NET - be free with MONO."
23: ,"MONO (2010 год)","//www.vb-net.com/GoogleTranslate/index.htm","GoogleTranslate - англо-русский онлайн переводчик"
24: ,"MONO (2010 год)","//www.vb-net.com/SNMP_Tester/index.htm","SNMP-тестер сетевых устройств. GUI-программа на Windows.Forms для Linux."
25: ,"ASP NET (2010 год)","//www.vb-net.com/VideoConverter/index.htm","Опыт видео-конвертации"
26: ,"ASP NET (2010 год)","htp://www.vb-net.com/UrlRewrating/index.htm","ASP.NET URL rewriting."
27: ,"ASP NET (2010 год)","//www.vb-net.com/PostgreSQL_AspNet/index.htm","Этюды на ASP.NET. Пример сайта на СУБД PostgreSQL"
28: ,"ASP NET (2010 год)","//www.vb-net.com/MySQL_ASPNET_Users/index.htm","Избавляемся от базы стандартных пользователей ASP.NET на MS SQL - пример ASP.NET сайта на MySQL."
29: ,"ASP NET (2010 год)","//www.vb-net.com/SEO_SiteMap/index.htm","Делаем SEO SiteMap"
30: ,"ASP NET (2010 год)","//www.vb-net.com/Portability/index.htm","Проблемы развертывания ASP.NET сайтов"
31: ,"ASP NET (2010 год)","//www.vb-net.com/1C-Gateway/index.htm","Шлюз к 1С по протоколу Битрикс"
32: ,"ASP NET (2010 год)","//www.vb-net.com/WebPerfomance/index.htm","Тестирование производительности Web-приложений"
33: ,"ASP NET (2010 год)","//www.vb-net.com/Linq/index.htm","Извлекаем пользу из LINQ"
34: ,"ASP NET (2010 год)","//www.vb-net.com/NestedDatalist/index.htm","Этюды на ASP.NET. Вложенный (nested) Datalist."
35: ,"ASP NET (2011 год)","//www.vb-net.com/WSQL_SOAP_Service_for_FLEX/index.htm","Как сделать SOAP/WSDL-вебсервис на ASP.NET/MONO для вызова его из FLEX"
36: ,"ASP.NET (2006 год)","//www.vb-net.com/asp2/9/index.htm","Выражения привязки."
37: ,"ASP.NET (2006 год)","//www.vb-net.com/asp2/11/index.htm","Асинхронные странички."
38: ,"ASP.NET (2006 год)","//www.vb-net.com/asp2/6/index.htm","Наложение копирайта на рисунки."
39: ,"ASP.NET (2006 год)","//www.vb-net.com/asp2/15/index.htm","Шифрование конфигурации."
40: ,"ASP.NET (2006 год)","//www.vb-net.com/asp2/10/index.htm","Динамическое добавление контролов."
41: ,"ASP.NET (2006 год)","//www.vb-net.com/asp2/13/index.htm","Управление профилями пользователей."
42: ,"ASP.NET (2006 год)","//www.vb-net.com/asp2/8/index.htm","FeedBack-страничка."
43: ,"ASP.NET (2006 год)","//www.vb-net.com/asp2/2/index.htm","Создание бизнес-объектов на базе спецколлекций."
44: ,"ASP.NET (2006 год)","//www.vb-net.com/asp2/16/index.htm","Установка ORCAS."
45: ,"ASP.NET (2006 год)","//www.vb-net.com/asp2/14/index.htm","Модификация выходного потока."
46: ,"ASP.NET (2007 год)","//www.vb-net.com/asp2/19/index.htm","CMS Digimaker."
47: ,"ASP.NET (2007 год)","//www.vb-net.com/asp2/24/index.htm","Business Logic Layer с динамически подзагружаемыми плагинами."
48: ,"ASP.NET (2007 год)","//www.vb-net.com/asp2/22/index.htm","SiteMap-провайдер."
49: ,"ASP.NET (2007 год)","//www.vb-net.com/asp2/26/index.htm","Странички со сложной логикой смены состояний."
50: ,"ASP.NET (2007 год)","//www.vb-net.com/asp2/27/index.htm","Мультимедиа на Web-страничках."
51: ,"ASP.NET (2007 год)","//www.vb-net.com/asp2/30/index.htm","Типовые сеточные формы."
52: ,"ASP.NET (2007 год)","//www.vb-net.com/asp2/25/index.htm","Подготовка буклетов для типографии."
53: ,"ASP.NET (2007 год)","//www.vb-net.com/asp2/23/index.htm","Классические Business Logic Layer."
54: ,"ASP.NET (2007 год)","//www.vb-net.com/asp2/31/index.htm","Мониторинг Web-приложений."
55: ,"ASP.NET (2008 год)","//www.vb-net.com/asp2/33/index.htm","XML-коллектор параметров ASP2-форм and XSLT-генератор динамических SQL."
56: ,"ASP.NET (2008 год)","//www.vb-net.com/asp2/34/index.htm","Cекционирование графики при SQL-хранении."
57: ,"ASP.NET (2008 год)","//www.vb-net.com/asp2/35/index.htm","Отложенная регистрация на функционале ASP.NET профилей."
58: ,"ASP.NET (2008 год)","//www.vb-net.com/asp2/37/index.htm","Этюды на ASP2. Простейший баг-трекер."
59: ,"ASP.NET (2008 год)","//www.vb-net.com/asp2/39/index.htm","Формирование Excel-отчетов."
60: ,"ASP.NET (2008 год)","//www.vb-net.com/asp2/32/index.htm","Безопасность Web-приложений."
61: ,"ASP.NET (2008 год)","//www.vb-net.com/asp2/36/index.htm","Недостатки объектно-ориентированного программирования в WEB."
62: ,"ASP.NET (2008 год)","//www.vb-net.com/asp2/41/index.htm","Этюды на ASP2. Наблюдаем за своим домом с работы."
63: ,"ASP.NET (2008 год)","//www.vb-net.com/asp2/38/index.htm","Сборка для работы с данными стандартных ASP.NET-профилей на уровне SQL."
64: ,"ASP.NET (2008 год)","//www.vb-net.com/asp2/40/index.htm","Практическое применение наследования, полиморфизма, интерфейсов и дженериков."
65: ,"ASP.NET (2009 год)","//www.vb-net.com/asp2/42/index.htm","Язва-скрипт в ASP.NET."
66: ,"ASP.NET (2009 год)","//www.vb-net.com/asp2/44/index.htm","Рефакторинг отдельного сайта к Web-порталу."
67: ,"ASP.NET (2009 год)","//www.vb-net.com/asp2/45/index.htm","Этюды на ASP2. Обращение к Whois-сервису."
68: ,"ASP.NET (2009 год)","//www.vb-net.com/PaymentGateway/index.htm","Шлюзы к платежным системам интернет-денег."
69: ,"ASP.NET (2009 год)","//www.vb-net.com/Counter/index.htm","Счетчики на Web-страничках."
70: ,"ASP.NET (2009 год)","//www.vb-net.com/ExchangeLogAnalyzer/index.htm","ExchangeLogAnalyzer - OpenSource парсер журнала MS Exchange Server."
71: ,"ASP.NET (2009 год)","//www.vb-net.com/asp2/43/index.htm","OpenSource-проекты для работы с видео и торрентами."
72: ,"ASP.NET (2009 год)","//www.vb-net.com/PeriodicAspNetJob/index.htm","Выполнение периодических задач в ASP.NET."
73: ,"ASP.NET (2009 год)","//www.vb-net.com/Xping/index.htm","Xping - утилита контроля качества связи."
74: ,"NET (2002 год)","//www.vb-net.com/windows/Regeidt.htm","Regedit - моя утилитка для создания ярлычков к ключам реестра."
75: ,"NET (2002 год)","//www.vb-net.com/windows/frx.htm","FRX-парсер - моя утилитка для выкусывания рисунков из шестерочного FRX-файла."
76: ,"NET (2002 год)","//www.vb-net.com/dotnet/tour7/index.htm","Язык программирования VB.NET."
77: ,"NET (2003 год)","//www.vb-net.com/windows/round/index.htm","Round - Округление это не просто!"
78: ,"NET (2003 год)","//www.vb-net.com/dotnet/tour15/index.htm","Remoting-программирование"
79: ,"NET (2003 год)","//www.vb-net.com/dotnet/tour9/index.htm","IDE седьмой студии и надстройки к нему."
80: ,"NET (2003 год)","//www.vb-net.com/convert/index.htm","Специализированные технологии обработки строк в NET."
81: ,"NET (2004 год)","//www.vb-net.com/windows/OutLook/index.htm","OutLookUnload - утилитка разгрузки почты OutLook в SQL с открытым исходным текстом."
82: ,"NET (2004 год)","//www.vb-net.com/wanted/my/draganddrop.htm","Drag-and-Drop"
83: ,"NET (2004 год)","//www.vb-net.com/windows/DirMSI/index.htm","DirMSI - утилитка просмотра содержимого MSI-файла с открытым исходным текстом."
84: ,"NET (2004 год)","//www.vb-net.com/dotnet/tour13/index.htm","Связь NET-COM"
85: ,"NET (2005 год)","//www.vb-net.com/wanted/my/sync.htm","Альтернативная оболочка к SQL2005"
86: ,"NET (2005 год)","//www.vb-net.com/wanted/asp2class/index.htm","Редактируемое дерево с меняющимся контекстным меню"
87: ,"NET (2005 год)","//www.vb-net.com/dotnet/tour17/index.htm","Мультипоточное программирование"
88: ,"NET (2005 год)","//www.vb-net.com/windows/Outline/index.htm","Outline - утилита загрузки прайс-листов с группировкой в SQL с открытым исходным текстом."
89: ,"NET (2005 год)","//www.vb-net.com/wanted/my/plugin.htm","DumpExe - утилитка дампирования структуры NET-сборок с открытым исходным текстом."
90: ,"NET (2005 год)","//www.vb-net.com/wanted/my/pj.htm","ProjectExplorer"
91: ,"NET (2005 год)","//www.vb-net.com/wanted/my/imagecombo.htm","Типизируемый тип столбца в GridView"
92: ,"NET (2005 год)","//www.vb-net.com/windows/SQLBath/index.htm","SQLBath - утилита работы с SQL-пакетами с открытым исходным текстом."
93: ,"NET (2005 год)","//www.vb-net.com/dotnet/tour16/index.htm","Работа с классами и коллекциями"
94: ,"NET (2005 год)","//www.vb-net.com/dotnet/tour14/index.htm","Программирование в сетях"
95: ,"NET (2006 год)","//www.vb-net.com/windows/SiteChecker/index.htm","SiteChecker - утилита оптимизация сайта с открытым исходным текстом."
96: ,"NET (2006 год)","//www.vb-net.com/windows/IE/index.htm","Программирование в среде браузера"
97: ,"NET (2006 год)","//www.vb-net.com/windows/WinDump/index.htm","WinDump - утилита фиксации состояния системы с открытым исходным текстом."
98: ,"NET (2008 год)","//www.vb-net.com/BasePage/index.htm","Базовые странички ASP.NET"
99: ,"Notes (2002 год)","//www.vb-net.com/standard/index.htm","Standart"
100: ,"Notes (2002 год)","//www.vb-net.com/convert/xslt/index.htm","XSLT"
101: ,"Notes (2002 год)","//www.vb-net.com/windows/pe/index.htm","PE - формат исполняемого файла."
102: ,"Notes (2003 год)","//www.vb-net.com/windows/installer/index.htm","Windows Installer."
103: ,"Notes (2003 год)","//www.vb-net.com/card/index.htm","SmartCard"
104: ,"Notes (2003 год)","//www.vb-net.com/dvd/index.htm","DVD - формат и обзор техник работы с ним."
105: ,"Notes (2003 год)","//www.vb-net.com/My_cisco/index.htm","CISCO"
106: ,"Notes (2003 год)","//www.vb-net.com/dotnet/uml.htm","UML"
107: ,"Notes (2004 год)","//www.vb-net.com/Post1/index.htm","Опыт работы почтовым администратором."
108: ,"Notes (2004 год)","//www.vb-net.com/windows/help/index.htm","MS HELP 2 - Document Explorer и новый формат файлов HxS."
109: ,"Notes (2004 год)","//www.vb-net.com/windows/mobile/index.htm","Входим в мобильник терминалом."
110: ,"Notes (2005 год)","//www.vb-net.com/VT6421L/index.htm","Дешевый RAID контроллер на чипе VIA VT6421L"
111: ,"Notes (2005 год)","//www.vb-net.com/Apache/index.htm","Настройка Apache."
112: ,"Notes (2005 год)","//www.vb-net.com/xslt/index.htm","XSLT-преобразования."
113: ,"Notes (2005 год)","//www.vb-net.com/xslt/index.htm","XSLT"
114: ,"Notes (2006 год)","//www.vb-net.com/windows/Exchange/index.htm","Настройка Exchange Server 2003"
115: ,"Notes (2006 год)","//www.vb-net.com/ngins/index.htm","NGINS + TRENDNET - долгожданное избавление от MS ISA Server."
116: ,"Notes (2006 год)","//www.vb-net.com/router/ISA2006/index.htm","Настройка ISA SERVER 2006"
117: ,"Notes (2007 год)","//www.vb-net.com/1U/index.htm","Сборка 1U сервера"
118: ,"Notes (2007 год)","//www.vb-net.com/Firefox/index.htm","Мой выбор - Firefox"
119: ,"Notes (2007 год)","//www.vb-net.com/windows/stop/index.htm","Stop Macro$oft"
120: ,"Notes (2008 год)","//www.vb-net.com/OpenSuse/index.htm","Установка и начальное конфигурирование OpenSuse Linux"
121: ,"Notes (2008 год)","//www.vb-net.com/router/index.htm","Игрушки для взрослых мальчиков"
122: ,"Notes (2008 год)","//www.vb-net.com/Excel/Report.htm","Избавляемся от Microsoft Reporting Services"
123: ,"Notes (2009 год)","//www.vb-net.com/Obfuscator/index.htm","Рекомендую обфускатор"
124: ,"Notes (2009 год)","//www.vb-net.com/PHP/index.htm","Microsoft начала раcпространять PHP 5"
125: ,"Notes (2009 год)","//www.vb-net.com/SIP-GW3/index.htm","VoIP-шлюз SIP-GW3"
126: ,"Notes (2009 год)","//www.vb-net.com/PoE-Injector/index.htm","Самый дешевый PoE Injector"
127: ,"Notes (2009 год)","//www.vb-net.com/sarotech/index.htm","Эра цифрового TV"
128: ,"Notes (2009 год)","//www.vb-net.com/CreateUserProfile/index.htm","CreateUserProfile - создание профиля Win-пользователя"
129: ,"Notes (2009 год)","//www.vb-net.com/windows/FTP/index.htm","Настройка FTP-сервера (Isolated Ftp Site)"
130: ,"Notes (2009 год)","//www.vb-net.com/windows/Goodbye/index.htm","Скажи Биллу Гейтсу Прощай!"
131: ,"Notes (2009 год)","//www.vb-net.com/AbsoluteEvil/index.htm","Осторожно Microsoft"
132: ,"Notes (2009 год)","//www.vb-net.com/criptopro/index.htm","Криптография по ГОСТ"
133: ,"Notes (2009 год)","//www.vb-net.com/DomainDelegated/index.htm","Делегирование домена на свои DNS"
134: ,"Notes (2010 год)","//www.vb-net.com/altova/index.htm","Выгрузка базы в XML"
135: ,"Notes (2010 год)","//www.vb-net.com/vsftpd/index.htm","Настройка HTTP и FTP-серверов в Linux (Apache/vsftpd)"
136: ,"Notes (2010 год)","//www.vb-net.com/SqlServer/index.htm","Поднимаем на хостинге MySQL и PostgreSQL сервера"
137: ,"Notes (2010 год)","//www.vb-net.com/LiveCD/index.htm","Загрузочные компакты и флешки (bootable LiveCD and bootable USB)"
138: ,"Notes (2010 год)","//www.vb-net.com/WebServer/index.htm","Модернизация Web-сервера - долой платный софт и Hyper-V"
139: ,"Notes (2010 год)","//www.vb-net.com/Subversion/index.htm","Избавляемся от Team Foundation Server - ставим Subversion"
140: ,"Notes (2010 год)","//www.vb-net.com/VmWare/index.htm","Основы работы с VmWare"
141: ,"Social (2010 год)","//www.vb-net.com/criminal/index.htm","Фальсификация выборов в Москве (база данных для статистических исследований)"
142: ,"Social (2010 год)","//www.vb-net.com/AbsoluteEvil/index.htm","Осторожно Microsoft"
143: ,"Social (2010 год)","//www.vb-net.com/windows/stop/index.htm","Stop Macro$oft"
144: ,"Social (2010 год)","//www.vb-net.com/AmnestyBusiness/index.htm","Амнистия бизнесменам - я подписался, а ты?"
145: ,"Nature (2010)","//www.vb-net.com/Bike/index.htm","Велосипедные и лыжные маршруты из Жулебино"
146: ,"Nature (2010)","//www.vb-net.com/Lamp/index.htm","Трехваттный светодиод 3W01DWW03 + очумелые ручки = фонарик для велосипеда."
147: ,"SOFT (2009 год)","//www.vb-net.com/WebDownloader_UltraLite/index.htm","WebDownloader_UltraLite - ваш личный поисковик по рунету с особыми возможностями поиска."
148: ,"SOFT (2009 год)","//www.vb-net.com/ComDetector/index.htm","ComDetector - утилита поиска COM-оборудования"
149: ,"SOFT (2009 год)","//www.vb-net.com/WebActivator/index.htm","WebActivator - клиент/сервер защиты от копирования для платных программ."
150: ,"SOFT (2009 год)","//www.vb-net.com/WebDownloader_UltraLite/index.htm","WebDownloader_UltraLite - ваш личный поисковик по рунету с особыми возможностями поиска."
151: ,"SOFT (2009 год)","//www.vb-net.com/ScriptManager/index.htm","ScriptManager - Менеджер MS SQL сервера - дополнение MS SMS для работы с большими скриптами."
152: ,"SOFT (2009 год)","//www.vb-net.com/Xping/index.htm","Xping - утилита контроля качества связи"
153: ,"SOFT (2009 год)","//www.vb-net.com/Xping/index.htm","Xping - утилита контроля качества связи."
154: ,"SOFT (2009 год)","//www.vb-net.com/AspNet_UserManager/index.htm","AspNet_UserManager - компонент сайта для управления пользователями."
155: ,"SOFT (2009 год)","//www.vb-net.com/WebActivator/index.htm","WebActivator - клиент/сервер защиты от копирования для платных программ."
156: ,"SOFT (2009 год)","//www.vb-net.com/NetStringObfuscatorHelper/index.htm","NetStringObfuscatorHelper - OpenSource моей библиотеки симметричного шифрования."
157: ,"SOFT (2009 год)","//www.vb-net.com/asp2/38/index.htm","GetAspNetProfileProperty - Sql-сборка для ASP.NET сайтов."
158: ,"SOFT (2009 год)","//www.vb-net.com/ThomasEckAdsiLibraryOnVBNet/index.htm","Thomas_Eck_ADSI_Lib - библиотека ADSI-функций Томаса Еска на VB.NET."
159: ,"SOFT (2009 год)","//www.vb-net.com/Meteonova/index.htm","SQL-Client_for_remote_XML-WebService - клиент meteonova.ru."
160: ,"SOFT (2009 год)","//www.vb-net.com/RemoveOldFile/index.htm","RemoveOldFile - утилита удаления устаревших файлов."
161: ,"SOFT (2009 год)","//www.vb-net.com/Bug_Tracker/index.htm","Bug_Tracker - инструмент разработки и эксплуатации программ."
162: ,"SOFT (2009 год)","//www.vb-net.com/asp2/38/index.htm","GetAspNetProfileProperty - Sql-сборка для ASP.NET сайтов."
163: ,"SOFT (2009 год)","//www.vb-net.com/ScriptManager/index.htm","ScriptManager - Менеджер MS SQL сервера - дополнение MS SMS для работы с большими скриптами."
164: ,"SOFT (2009 год)","//www.vb-net.com/Bug_Tracker/index.htm","Bug_Tracker - инструмент разработки и эксплуатации программ."
165: ,"SOFT (2009 год)","//www.vb-net.com/AspNet_UserManager/index.htm","AspNet_UserManager - компонент сайта для управления пользователями."
166: ,"SOFT (2009 год)","//www.vb-net.com/NetStringObfuscatorHelper/index.htm","NetStringObfuscatorHelper - OpenSource моей библиотеки симметричного шифрования."
167: ,"SOFT (2009 год)","//www.vb-net.com/asp2/1/index.htm","FriendSiteNavigator - кконтрол контекстного меню для ASP.NET сайтов."
168: ,"SOFT (2009 год)","//www.vb-net.com/ComDetector/index.htm","ComDetector - утилита поиска COM-оборудования"
169: ,"SOFT (2009 год)","//www.vb-net.com/asp2/1/index.htm","FriendSiteNavigator - контрол контекстного меню для ASP.NET сайтов."
170: ,"SOFT (2010 год)","//www.vb-net.com/ExecMySQL_RDR/index.htm","ADO.NET обвязка для работы с MySQL в ASP.NET-сайтах под Windows"
171: ,"SOFT (2010 год)","//www.vb-net.com/GoogleTranslate/index.htm","GoogleTranslate - англо-русский онлайн переводчик"
172: ,"SOFT (2010 год)","//www.vb-net.com/RemoveOldFile/index.htm","RemoveOldFile - утилита удаления устаревших файлов"
173: ,"SOFT (2010 год)","//www.vb-net.com/Custom_VKP80/index.htm","OpenSource драйвер терминального принтера Custom VKP80 для Windows и Linux"
174: ,"SOFT (2010 год)","//www.vb-net.com/WCF_Client/index.htm","WCF_CLIENT - клиент Web-сервиса"
175: ,"SOFT (2010 год)","//www.vb-net.com/SNMP_Tester/index.htm","SNMP-тестер сетевых устройств. GUI-программа на Windows.Forms для Linux"
176: ,"SOFT (2010 год)","//www.vb-net.com/SqlClr_IndexCryptoProtector/index.htm","SqlClr_IndexCryptoProtector - криптографическая защита индексов SQL-сервера с помощью SQL CRL сборки"
177: ,"SOFT (2011 год)","//www.vb-net.com/Foto_Slider/index.htm","OpenSource Freeware FotoSlider on Flex 3 and jQuery"
178: ,"SQL (2004 год)","//www.vb-net.com/windows/round/index.htm","Банковское округление"
179: ,"SQL (2005 год)","//www.vb-net.com/dotnet/tour14/index.htm","TCP/IP Notification Server для SQL2000 на COM-обьекте"
180: ,"SQL (2006 год)","//www.vb-net.com/wanted/message/index.htm","Описание некоторых моих SQL-проектов."
181: ,"SQL (2007 год)","//www.vb-net.com/asp2/28/index.htm","Вариации на тему Notification-сервера"
182: ,"SQL (2008 год)","//www.vb-net.com/asp2/34/index.htm","Cекционирование графики при SQL-хранении"
183: ,"SQL (2009 год)","//www.vb-net.com/Sql-SOAP/index.htm","Как парсить XML SOAP в MS SQL"
184: ,"SQL (2009 год)","//www.vb-net.com/Meteonova/index.htm","SQL-Client_for_remote_XML-WebService - клиент meteonova.ru"
185: ,"SQL (2010 год)","//www.vb-net.com/PostgreSQL_hierarchy/index.htm","SQL-проектирование в PostgreSQL. Над плоским миром MS SQL."
186: ,"SQL (2010 год)","//www.vb-net.com/PostgreSQL/BLL.htm","Фрагмент реальной BLL на PostgeSQL"
187: ,"SQL (2010 год)","//www.vb-net.com/PostgreSQL_Object/index.htm","Пример обьектно-реляционного проектирования структуры данных в PostgreSQL"
188: ,"SQL (2010 год)","//www.vb-net.com/sqlbackup/index.htm","Избавляемся от Microsoft SQL Server Log Shipping"
189: ,"SQL (2010 год)","//www.vb-net.com/CompareSQLPerfomance/index.htm","Сравнительный анализ производительности MS SQL Server 2008, PostgreSQL 8.4, MySQL 5.1"
190: ,"SQL (2010 год)","//www.vb-net.com/PostgreSQL/xml.htm","Экспорт данных из PostgeSQL в XML"
191: ,"SQL (2010 год)","//www.vb-net.com/PostgreSQL_defect/index.htm","Десять главных недостатков PostgreSQL"
192: ,"SQL (2010 год)","//www.vb-net.com/SqlJobTimeout/index.htm","Реализация таймаута на динамически создаваемых SQL JOB, вызывающих SQL CLR сборку"
193: ,"SQL (2010 год)","//www.vb-net.com/TurnRowsIntoColumns/index.htm","Выполняем разворот строк в столбцы в MS SQL и PostgreSQL"
194: ,"SQL (2010 год)","//www.vb-net.com/sql/perfomance/index.htm","Настройка производительности SQL-сервера"
195: ,"SQL (2011 год)","//www.vb-net.com/SQL_CTE/index.htm","Хранение в MS SQL маршрутной топологии и отборы маршрутов рекурсивными CTE-процедурами"
196: ,"Terminal (2010)","//www.vb-net.com/ComDetector/index.htm","ComDetector - утилита поиска COM-оборудования"
197: ,"Terminal (2010)","//www.vb-net.com/Terminal/index.htm","Программирование терминальных сетей"
198: ,"Terminal (2010)","//www.vb-net.com/Terminal/index.htm","Программирование терминальных сетей"
199: ,"Terminal (2010)","//www.vb-net.com/Custom_VKP80/index.htm","OpenSource драйвер терминального принтера Custom VKP80 для Windows и Linux"
200: ,"Terminal (2010)","//www.vb-net.com/Watchdog/index.htm","Сторожевой таймер EXPPAY"
201: ,"Terminal (2010)","//www.vb-net.com/RemoteSQLexecute/index.htm","Remote SQL execute for PostgreSQL on GSM/GPRS channel with extreme compress and cryptography"
202: ,"Terminal (2010)","//www.vb-net.com/TerminalMonitoring/index.htm","Мониторинг терминальной сети на PostgreSQL"
203: ]
204: public function SiteTopic()
205: {
206: }
207: }
Хандлер, который я описал на страничке Как сделать простейший Web-handler - формирующий XML или JSON выдернул мне топики моего хомячка. Я взял их в Excel и формулой (которую вы видите в строке 6) - получил код для внесения во Flash Builder. Соответсвенно для вашего применения моего баннерного ротатора вам потребуется либо внести свой контент в баннерный ротатор статически, либо дергать контент динамически с сервера при каждом реквесте странички (для сайтов с активно-меняющимся контентом).
Сгрузить мой баннерный ротатор в откомпилированном виде вы можете отсюда.
<SITEMAP> <MVC> <ASP> <NET> <DATA> <KIOSK> <FLEX> <SQL> <NOTES> <LINUX> <MONO> <FREEWARE> <DOCS> <ENG> <CHAT ME> <ABOUT ME> < THANKS ME> |