Zenit + Helios 44m

  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Digg
  • del.icio.us
  • MySpace

Fun

Мыльница+объектив от Зенита Helios-44m

Не в фокусе)


  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Digg
  • del.icio.us
  • MySpace

The roof is on fire!

Был сегодня на одной из московских крыш.

Вот что нафоткал(всё с рук, не без косяков):

  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Digg
  • del.icio.us
  • MySpace

I’ts Moscow!

Просто рад =)

  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Digg
  • del.icio.us
  • MySpace

Panoramic


Нормально собранный весенний материал.
Spot: м. Автозаводская. 3-е транспортное кольцо.
Map

  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Digg
  • del.icio.us
  • MySpace

Insomnia.

Я видел осень. Она такая

Сталкер

  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Digg
  • del.icio.us
  • MySpace

Sharp point

Автор: Reos

  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Digg
  • del.icio.us
  • MySpace

Flex. People win.

Первая часть: http://corpix.ru/show/384

Заставил MenuBar делать то, что мне было нужно.

А вот компонент, который я нашел на форуме в первой части:


package custom{
 import flash.geom.Rectangle;

 import mx.controls.Alert;
 import mx.controls.MenuBar;
 import mx.controls.menuClasses.IMenuBarItemRenderer;
 import mx.core.IFlexDisplayObject;

 public class AlignableMenuBar extends MenuBar {
 private static const """""""MARGIN_WID" " " " " " " TH:int=10;
 private var background:IFlexDisplayObject;
 public var itemAlign:String;

 public function AlignableMenuBar() {
 super();
 }

 override protected  function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void {
 if (this.itemAlign == "right") {
 updateDisplayListRightAlign(unscaledWidth,unscaledHeight);
 } else if (this.itemAlign == "center") {
 updateDisplayListCenterAlign(unscaledWidth,unscaledHeight);
 } else {
 updateDisplayListLeftAlign(unscaledWidth,unscaledHeight);
 }
 }

 protected function itemsTotalWidth(unscaledWidth:Number,unscaledHeight:Number):int {
 super.updateDisplayList(unscaledWidth,unscaledHeight);

 var len:int=menuBarItems.length;

 var totalWidth:int=0;
 for (var i:int=0; i < len; i++) {
 var tempItem:IMenuBarItemRenderer=menuBarItems[i];
 totalWidth+= tempItem.width;
 }
 return totalWidth;
 }

 protected function updateDisplayListLeftAlign(unscaledWidth:Number,unscaledHeight:Number):void {
 super.updateDisplayList(unscaledWidth,unscaledHeight);

 var lastX:Number="""""""MARGIN_WID" " " " " " " TH;
 var lastW:Number=0;
 var len:int=menuBarItems.length;

 var clipContent:Boolean=false;
 var hideItems:Boolean=unscaledWidth == 0 || unscaledHeight == 0;

 for (var i:int=0; i < len; i++) {
 var item:IMenuBarItemRenderer=menuBarItems[i];

 item.setActualSize(item.getExplicitOrMeasuredWidth(),unscaledHeight);
 item.visible=! hideItems;

 lastX=item.x=lastX + lastW;
 lastW=item.width;

 if (! hideItems && item.getExplicitOrMeasuredHeight() > unscaledHeight || lastX + lastW > unscaledWidth) {
 clipContent=true;
 }
 }

 if (background) {
 background.setActualSize(unscaledWidth,unscaledHeight);
 background.visible=! hideItems;
 }

 // Set a scroll rect to handle clipping.
 scrollRect=clipContent?new Rectangle(0,0,unscaledWidth,unscaledHeight):null;

 }

 protected function updateDisplayListCenterAlign(unscaledWidth:Number,unscaledHeight:Number):void {
 var lastX:Number = (this.width - itemsTotalWidth(unscaledWidth,unscaledHeight)) / 2;
 var lastW:Number = 0;

 var clipContent:Boolean=false;
 var hideItems:Boolean=unscaledWidth == 0 || unscaledHeight == 0;

 for (var j:int=0; j < menuBarItems.length; j++) {
 var item:IMenuBarItemRenderer=menuBarItems[j];

 item.setActualSize(item.getExplicitOrMeasuredWidth(),unscaledHeight);
 item.visible=! hideItems;

 item.x = lastX + lastW;
 lastX = item.x;

 lastW=item.width;

 if (! hideItems && item.getExplicitOrMeasuredHeight() > unscaledHeight || lastX + lastW > unscaledWidth) {
 clipContent=true;
 }
 }

 if (background) {
 background.setActualSize(unscaledWidth,unscaledHeight);
 background.visible=! hideItems;
 }

 scrollRect=clipContent?new Rectangle(0,0,unscaledWidth,unscaledHeight):null;
 }

 protected function updateDisplayListRightAlign(unscaledWidth:Number,unscaledHeight:Number):void {
 var lastX:Number=this.width - itemsTotalWidth(unscaledWidth,unscaledHeight);
 var lastW:Number=0;

 var clipContent:Boolean=false;
 var hideItems:Boolean=unscaledWidth == 0 || unscaledHeight == 0;

 for (var j:int=0; j < menuBarItems.length; j++) {
 var item:IMenuBarItemRenderer=menuBarItems[j];

 item.setActualSize(item.getExplicitOrMeasuredWidth(),unscaledHeight);
 item.visible=! hideItems;

 lastX=item.x=lastX + lastW;

 lastW=item.width;

 if (! hideItems && item.getExplicitOrMeasuredHeight() > unscaledHeight || lastX + lastW > unscaledWidth) {
 clipContent=true;
 }
 }

 if (background) {
 background.setActualSize(unscaledWidth,unscaledHeight);
 background.visible=! hideItems;
 }

 scrollRect=clipContent?new Rectangle(0,0,unscaledWidth,unscaledHeight):null;
 }
 }
}

Мне нужно было расположить элементы по центру…видимо автор компонента не проверил его полностью и положился на теорию…

Для получения нужного результата понадобилось исправить небольшую математическую ошибку =)

Само меню, а также функции для отлова кликов(в выпадающих меню клики не обрабатываются…в этой проблеме я не стал разбираться, сейчас мне это и не нужно)…вообщем весь исходный код xml-menu.

Если есть какие-то замечания/вопросы – пишите в комментарии, обсудим =)

  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Digg
  • del.icio.us
  • MySpace

Flex menubar items align?No =(

Adobe производит довольно хорошие продукты.

До этого момента я забивал на тупейшие неудобности в illustrator, photoshop и т.д.

Но вот захотелось мне поюзать Flex(Flash Builder 4). Скажем даже так: «Я захотел сделать меню для сайта в Flash Builder 4″.

Решил использовать для этой простой(казалось бы) задачи компоненту MenuBar.

И тут начался ад…

  1. Найти что-то в адоубовских мануалах практически нереально.
  2. Чтобы отловить клик по главному элементу меню(в моём случае мне были нужны только главные элементы, подменю не было) пришлось писать целую функцию.
  3. И последняя капля: нельзя позиционировать элементы внутри меню.

http://www.flexdeveloper.eu/forums/flex-builder-flash-builder-eclipse/alignment-of-menu-items-in-menubar/ тут нашлось решение, но я не смог подключить его к своему проекту.

Жуть как не логично.

Вторая часть: http://corpix.ru/show/386

  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Digg
  • del.icio.us
  • MySpace

Simple Samba share

Захотелось удобного доступа к файлам из под винды.

Собрал Samba, погуглил, сделал доступ(Спасибо sudouser.com за хорошую статью по настройке)…но есть одно большое и странное НО…

Continue reading →

  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • Digg
  • del.icio.us
  • MySpace