(SOFT) SOFT (2011 год)

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. Соответсвенно для вашего применения моего баннерного ротатора вам потребуется либо внести свой контент в баннерный ротатор статически, либо дергать контент динамически с сервера при каждом реквесте странички (для сайтов с активно-меняющимся контентом).

Сгрузить мой баннерный ротатор в откомпилированном виде вы можете отсюда.



Comments ( )
Link to this page: //www.vb-net.com/Flash_BLUR/index.htm
< THANKS ME>