Archive for the ‘Strix’ Category

Мобильное рассписание автобусов.

Декабрь 28, 2007

По адресу http://wap.strix.by доступно wap рассписание движения городских автобусов г. Гродно. Для того, чтобы его просмотреть необходимо иметь телефон с wap браузером и желательно GPRS, чтобы платить меньше за трафик.

(more…)

Реклама

Strix. Переезд на наш домен.

Ноябрь 19, 2007

Наш проект под кодовым названием strix переезжает на свой основной домен strix.by.

Из нововведений следует отметить новую карту и постоянно изменяющийся дизайн. Уже практически добавлена функциональность поиска улиц и домов.

Идёт активная разработка. У нас много идей и энтузиазма. Так что, ждите новых новостей.

Flash. Refactoring.

Октябрь 2, 2007

Я программирую в основном на Java. Но вот понадобился Flash. Что я могу сказать по этому поводу…. Flash обзавёлся ноым языком снераиев (последний раз я видел флеш когда была только пятая версия). Этот язык похож на Java, всё при неём: ООП, пакеты….Порадовала обработка XML.

Но, честно сказать, очень тяжело (а если точно сказать лень) изучать что-то похожее. Был бы полным ламаком, учил бы с нуля и знал бы самые простые вещи. Вот и приходиться по форумам лазить.

Это было отступление от темы….. :)

Так вот, на моей карте оказалось уже два таскаемых объекта. Это карта и панель масштаба. Когда пришла очередь миникарты, то я понял, что надо что-то менят. Третий объект, в котором опять од-но и тоже. Вот тут нам и поможет наследование.

Реализовал клас, который позволяет создавать объекты, которые можно таскать в переделах экрана.

Всё просто, берешь и рисуешь мувик, который будет у нас фоном. Единственное требовани : верхнний левый угол этого мувика должен быть в координатах 0,0. Называешь его к примеру Background. Наследуешь его от моего класса. Для этого пишешь примерно такой код.


/**
* Фон Ð´Ð»Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸ "
*/

package {

import by.strix.MovedBackground;

public class Background extends MovedBackground {
}
}

После этого ложишь свой BackGround на любой клип на задний план. Вот и всё.

Код моего класса следующий.


/**
* Фон Ð´Ð»Ñ Ð¿Ð°Ð½ÐµÐ»ÐµÐ¹. ÐозволÑÐµÑ Ð¸Ñ Ð´Ð²Ð¸Ð³Ð°ÑÑ Ð² пÑÐµÐ´ÐµÐ»Ð°Ñ Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ð¹ облаÑÑи
* !!! ÐÐÐÐÐÐÐÐ. ÐÐ»Ñ ÐºÐ¾ÑÑекÑной ÑабоÑÑ Ð½ÐµÐ¾Ð±Ñодимо, ÑÑо Ð±Ñ Ñон наÑиналÑÑ Ñ (0,0)
*/

package by.strix {

import flash.display.MovieClip;
import flash.events.*;
import flash.geom.Rectangle;

public class MovedBackground extends MovieClip {

//private var settings:XML = MovieClip(root).settings.getSettings();

private var _parent:MovieClip = MovieClip(parent);

public function MovedBackground() {


// УÑÑановка обÑабоÑÑиков Ð´Ð»Ñ Ð¿ÐµÑеÑÑгиваниÑ.
addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
stage.addEventListener(Event.MOUSE_LEAVE, handleMouseLeave);


// УÑÑановка обÑбоÑÑиков Ñ ÑодиÑелÑ, Ð´Ð»Ñ ÐºÐ¾ÑоÑого ÑвлемÑÑ Ð·Ð°Ð´Ð½Ð¸Ð¼ Ñоном, Ð´Ð»Ñ Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ñ.
_parent.addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver);
_parent.addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut);

// пÑогÑаммно ÑÑÑанавливаем в заÑемненное положение
handleMouseOut(null);
}

function handleMouseDown(event:Event):void {
// ХиÑÑое вÑÑмÑление Rect Ð´Ð»Ñ StartDrag ÑвÑзвно ÑÑем, ÑÑо наÑало клипа не в нÑле.
var dx:Number = width-stage.stageWidth + x;
var dy:Number = height-stage.stageHeight + y;
var dragRect:Rectangle = new Rectangle(-dx,-dy, dx-x,dy-y);
//parent.startDrag(false, dragRect);
//startDrag(false, dragRect);*/
MovieClip(parent).startDrag(false, dragRect);
}

function handleMouseUp(event:Event):void {
//parent.stopDrag();
stopDrag();
}

function handleMouseLeave(event:Event=undefined):void {
/*if (root.panel.dragged_mc){
root.panel.handleMouseUp();
}*/
handleMouseUp(event);
}

// Ðаводи мÑÑкÑ
function handleMouseOver(event:Event=undefined):void {
_parent.alpha = 1;
}

// Уводим мÑÑкÑ
function handleMouseOut(event:Event=undefined):void {
_parent.alpha = 0.25;
}
}
}

Strix. Работа кипит :)

Октябрь 1, 2007

Мда…. столько инетересно просисходит при разработке чего-то ни было, что решил немного опубликовывать.

1. Наш дизайнер сдлал мега дизайн.

2. Ну а это переписка с моим коллегой по цеху, Юриком.

Пока я писал это пост, Kinder уже успел всё зделать сам. Тем кому интересно идут на нашу первую официальную страничку. Не забываем оставлять мнение в коментах.

Strix. Нарезание картинок.

Сентябрь 29, 2007

Так как на собрании нашей компашки (состав пока являеться секретом) было решено, что сначало карта появиться в растровом виде, то пришлось поискать карту Гродно. Помог мне в этом блог s13.ru, а именно страница с картами. Была взята карта за 2003 год, так как там были подписаны дома. (more…)

Strix. Хождение по мукам.

Сентябрь 29, 2007

Началось всё с того, что на работе не стало интеренета. Нет, его не отключили, просто он ну очень медленно работал. А тут я как назло начал встраивать во Flash прелоадер. Так как я до этого момента вообще ничего не присал на ActionScript 3.0, мне пришлось начитаться как русскоязычных так и англоязычных ресурсов.

Кроме неработающего интеренета еще вдабавок слёг один из самых на мой взгляд лучших русскоязычных ресурсов по Flash форум flasher.ru. Я взял пример написанный на Flash 9.0 alfa. Запускаю его….работает. Делаю тоже самое — не работает. Копирую содержимое в мой файл…. Не работает.

Выдаёт такую ошибку:

1046: Type was not found or was not a compile-time constant: TextField.

Стало грустно. К вечеру появился интеренет и всё встало на свои места. :)

Оказывается, если вы ложите в MovieClip поле для ввода и даёте ему имя, то в файле класса для этого MovieClip’а желательно (в моём случае оказалось обязательно) указать в импортах

import flash.text.TextField;

В этом мне помогли лайф доки от адоба.
Потом начала выскакивать другая ошибка. У меня был мувиклип, который лежал на TimeLine. Так вот мне надо было из этого MovieClip’а сделать play() для TimeLine. В примере было так:

parent.play();

Вот оно мне начало выдавать следующую ошибку.

1061: Call to a possibly undefined method play through a reference with static type flash.display:DisplayObjectContainer.

Но мы ж не лохи, мы знаем ООП и понимаем, что parent имеет тип DisplayObjectContainer (смотрите опять же лайф доки от Adobe), а метод play() есть у MovieClip. Дело ясное — casting, или говоря попросту нужно привести тип. Но как это делаеться во Flash. Ответ на это вопрос нам даёт англоязычный ресурс http://www.senocular.com/flash/tutorials/as3withflashcs3/?page=3 (на смотреть в самом низу страницу) . Тутдаже и пример есть. Вот так всё просто оказалось.

MovieClip(parent).play();

Кстати, сайт senocular.com очень даже информативный. Советую посетить.

Посмотреть мой прелоадер можно тут. Он конечно не притендует на красоту и изящество, но функционал достигнут.

Как всегда, всех заинтересованных приглашаю в коменты. А код моего прелоадера получился примерно такой.


package main {
import flash.text.TextField;
import flash.display.MovieClip;
import flash.events.*;

public class preloader extends MovieClip {
public function preloader() {
addEventListener(Event.ENTER_FRAME, Update);
}

public function Update(e : Event):void {
var bytesLoaded:Number = stage.loaderInfo.bytesLoaded;
var bytesTotal:Number = stage.loaderInfo.bytesTotal;
var s:String = "";
var percent:Number = 0;
if (bytesTotal>0){
percent = Math.floor(bytesLoaded/bytesTotal*100);
s = percent+"% ("+
Math.round(bytesLoaded/1024)+"kb / "+
Math.round(bytesTotal/1024)+"kb)";
}
this.txt.text="Loading... "+s;
if (bytesLoaded==bytesTotal || bytesTotal==0) {
removeEventListener(Event.ENTER_FRAME, Update);
MovieClip(parent).play();
}
}

}
}

Кстати, как выделить так исходный код я узнал в соответсвующем FAQ. Но у меня почемуто ничего не получаеться. :(

Strix. Выбор технологий.

Сентябрь 17, 2007

Так как для реализации проекта необходимо показывать карту(блин … проговорился:)) , то шел активный поиск подходящих технологий. (more…)

Strix. Пока еще только яйцо.

Сентябрь 10, 2007

Начата работа на проектом под кодовым названием Strix. На данном блоге будут опубликовываться релизы и некоторые сообщения. Вся основная разработка ведеться на закрытом блоге. :)