пятница, 10 декабря 2010 г.

Редактор уровней box2dflash

http://www.jacobschatz.com/bisonkick/
Очень клевая штука за 2 минуты получил тестлевел и персонажа в свое приложение.
Пока полет нормальный.
И лессон http://www.emanueleferonato.com/2010/08/16/create-box2d-levels-in-a-quick-with-bison-kick/
Сори что давно не писал, хотя читают меня и не многие, но все равно сори)
За это время узнал миллион вещей с которыми стоит поделиться.
Поделюсь.

среда, 6 октября 2010 г.

четверг, 30 сентября 2010 г.

Идем в физику

С целью ухода от лишних скриптов и использования физики начал ковырять box2d.
Пока стандартная связка flashDevelopa с adobeFlash. Очень хочу уити в flashBuilder, для этого пришлось  даже избавиться от portabla и поставить stndalone  adobeFlash ( flashBuider не видит зщкефиду и отказываеться создавать flash проект. 
Посмотрим что из этого выидет. После напишу о граблях и ресурсах по box2d для flash, которые как оказалсь не так просто и наити. 
Забавно что сижу в офисе где рядом двое сеошников которые по образованию физики :)

вторник, 14 сентября 2010 г.

четверг, 9 сентября 2010 г.

Похоже, мы cможем увидеть упаковщик AIR iPhone снова в деле

“we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.”
http://www.apple.com/pr/library/2010/09/09statement.html

понедельник, 6 сентября 2010 г.

Spark DataGrid Особенности при задании dataProvider динамически

Задача: нужно запостить динамически датапровайдер после обработки.
Решение в mx:
Мои DataGrid(mxml):

<mx:DataGrid id="dataGrid"/>

Сетим DataProvider(as):

public var serverData:ArrayCollection=new ArrayCollection;
dataGrid.dataProvider=serverData;

Никаких подводных камней. У меня serverData фильтруеться на основе деиствии пользователя и постоянно обновлеется.Сразу за ним обновляеться dataGrid. В отличие от mx DataGrid в spark следующии код не сработает:


<s:DataGrid id="dataGrid"/>

public var serverData:ArrayCollection=new ArrayCollection;
dataGrid.dataProvider=serverData;

Решение в spark:

    <s:DataGrid id="dataGrid">
    <s:columns>
        <s:ArrayList>
            <s:GridColumn dataField="day"/>
            <s:GridColumn dataField="cor"/>
            <s:GridColumn dataField="aud"/>
        </s:ArrayList>
    </s:columns>
</s:DataGrid>

public var serverData:ArrayCollection=new ArrayCollection;
dataGrid.dataProvider=serverData;

Где  day, cor, aud итемы в serverData.

DateChooser Получаем название дня недели.

Выпала необходимость поработать с этим компонентом и на основе его делать выборку по дням недели.
Сам компонент:

    <mx:DateChooser id="date"
                    dayNames="[ 'Вс','Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб']"
                    firstDayOfWeek="1"
                    showToday="false"
                    monthNames="[ 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь' ]"
                    />

Обработчик события на change:

    protected function initializeHandler(event:FlexEvent):void
            {
                date.addEventListener(Event.CHANGE, dateListener);
            }

Получаем день недели:

protected function dateListener(event:Event):void
            {
                trace(date.selectedDate.getDay());
            }
Обратите внимание что в консоль выводиться номер элемента в массиве dayNames, несмотря на то что мои DateChooser адаптирован на календарь с началом недели с понедельника при выборе Пн в DateChooser в консоль выведеться "1" а при выборе Вс "0".

Приведу возможныи пример дальнеишеи обработки:

        protected function dateListener(event:Event):void
            {
                switch(date.selectedDate.getDay()){
                case 0:
                    trace('Вс');
                    break;
                case 1:
                    trace('Пн');
                    break;
                case 2:
                    break;
                case 3:
                    break;
                case 4:
                    break;
                case 5:
                    break;
                case 6:
                    break;
                }
          }