Accretive Tech, Streamate.com

streamateFlashUserClient
Our main user-facing Flash client.

From August 2011 to July 2014 I worked for Accretive Technology Group, maintaining their flagship product, a live streaming adult entertainment platform, duplicated over 1500+ websites. I started as a Flash ActionScript developer, maintaining and adding features to their performer client, of which I don’t have any screenshots, as well as the user client shown in this first image.

You can also see the user client by going to Streamate.com in a desktop browser and clicking on any performer. Warning: this is an NSFW site. The screenshots on this page are from the non-nude section.

Within the first year I worked with one other developer to convert our Flash user client into a mobile client for use on the few Android phones that supported Flash. Unfortunately I don’t have one of those phones so I don’t have a screenshot of that either.

Horizontal version of our mobile client shown on a phone.
Horizontal version of our mobile client shown on a phone.

After about a year I moved over to developing the model portion of the MVC framework for an HTML5 client designed for use on iPad, iPhone and other mobile devices. We focused on iOS because Apple users spend more money, but made sure everything worked on various Android devices as well. We built the app in jQuery and Spine.js, which is an MVC JavaScript framework similar to Backbone.js. I also wrote about 70 unit tests in QUnit and for future maintenance, had to learn a bit of Sass.

 Vertical version of our mobile client shown on a phone.
Vertical version of our mobile client shown on a phone.

Shortly after we finished this we began converting it for use in a couple different parts of our TV station.

After we finished the TV station, we moved on to building a redesigned Streamate. I took charge of converting the Flash client to the new design, then moved on to random tasks throughout the refactoring of our code.

In the end, I was doing mostly maintenance, bug hunting and adding small features all over the site, my time split between ActionScript, JavaScript, HTML, PHP and CSS. I finally decided to resign because it was getting to the point where I wanted to work on something different and wanted to take a break from development for a few months.

Wacky Words Facebook MMO

A comedy word-based Facebook massive multiplayer game built on Flash Builder and Google App Engine.

This is a funny word massive multiplayer role playing game built on Flash Builder and Google App Engine. Create funny combinations of words from random choices, then write out a description and try to sell your idea to investors. The more ridiculous the better. Gain cash as you get votes and investors, gain levels and buy skills. My future plans were to be able to buy naughty words, upload videos and images to  further illustrate your concept or start rivalries with other players or friends.

I never finished the project and since I stopped working on this project, Google App Engine removed support for Python versions below 2.7, so my app stopped working. It would take a bit of work to migrate this project to 2.7 and if I ever return to this I want to re-do it in AngularJS anyway so I decided to focus on other projects.

Even though it doesn’t work, and the folders are still a bit disorganized, you can still see the code on github: https://github.com/kalinr/Wacky-Words-Facebook-MMO.

AS3 Character Text Effect Class

This is a class I built in 2008 to animate any textfield, character by character. All you have to do is create a textfield, enter the text you wish to animate, then pass that into the class and it will animate each individual character in or out based on different parameters.

This is a class I built in 2008 to animate any textfield, character by character. All you have to do is create a textfield, enter the text you wish to animate, then pass that into the class and it will make a nearly exact duplicate of the textfield, with each individual character in its own movieclip, then animate them in or out based on different parameters. It includes a dozen or so animation options. Go ahead and download the source and feel free to use this code wherever you like.

 

 

Retail Price Calculator

In 2009 I made this Walmart price calculator/wishlist banner in AS3. The data comes from an XML file and a folder full of merchandise images.

In 2009 I made this Walmart wishlist banner in AS3. The data comes from an XML file and a folder full of merchandise images. It had two versions, one calculated price, the other served as a wish list without prices.

Flex FaceBook Image App

In early 2010, to learn the FaceBook API, I built a Flex application to allow you to quickly look through all your friends photos in one easy location.

In early 2010, to learn the FaceBook API, I built a Flex application to allow you to quickly look through all your friends photos in one easy location. It no longer works because the server was taken down and FaceBook changed their API, but here’s a video to give you an idea of what it was.

AS3 QuickTimer Class

I needed an easy way to see how long my animations were taking, but something that could be quickly turned off when I needed to publish for a client review. I came up with this simple QuickTimer class.

When making banner ads, often times you need to condense your animations into a short period of time. I needed an easy way to see how long my animations were taking, but something that could be quickly turned off when I needed to publish for a client review. I came up with this simple QuickTimer class. Simply import the class, then create a new instance of QuickTimer, passing in a MovieClip. The class will create a little white box in the upper left corner that will count up the seconds. Alternately, you can pass in a textfield that it will use to display the timing, or you can pass in nothing, which will turn on traceMode to simply trace out the time.

package com{

	import flash.text.TextField;
	import flash.events.TimerEvent;
	import flash.utils.Timer;

	public class QuickTimer{

		private var mainTimer:Timer;
		private var _txt:TextField;

		private var milliseconds:int;

		private var strTime:String;
		private var traceMode:Boolean = false;

		public function QuickTimer(txt:* = null){//pass in either a textfield or movieClip to attach a textField

			if(!txt){
				traceMode = true;
			}else{
				if(txt is TextField){
					_txt = txt;
					_txt.parent.visible = true;
				}else{
					_txt = new TextField();
					_txt.height = 15;
					_txt.width = 26;
					_txt.background = true;
					txt.addChild(_txt);
					txt.visible = true;
					_txt.x = 5;
					_txt.y = 5;
				}
				_txt.visible = true;
			}

			mainTimer = new Timer(100);
			milliseconds = 0;
			mainTimer.addEventListener(TimerEvent.TIMER, updateTime);
			mainTimer.start();
		}

		private function updateTime(evt:TimerEvent):void{
			milliseconds += 1;

			var seconds:int = Math.floor(milliseconds/10);
			var remaining:int = milliseconds - seconds*10;

			strTime = seconds + ":" + remaining;
			if(traceMode && remaining == 0){
				trace("QuickTimer: " + seconds + " seconds");
			}else{
				_txt.text = strTime;
			}
		}

		public function stopTimer(){
			mainTimer.stop();

			/*if(traceMode){
				trace("QuickTimer end: " + strTime);
			}*/
		}

		public function traceTime(timeLabel:String = null){
			if(timeLabel){
				trace(timeLabel + ": " + strTime);
			}else{
				trace("QuickTimer current time: " + strTime);
			}
		}

	}
}

 

Mooster Day Flash Banners

In 2010 I built a set of animated Flash banners for a nonprofit called Global Nomads Group using the GreenSock engine.

In 2010 I built a set of animated Flash banners for a nonprofit called Global Nomads Group centering around a character called the Mooster, half moose, half rooster, who goes “Cock-a-doodle-moo”. These banners were developed entirely with the GreenSock tweening engine. The versions I’m showing here are in ActionScript 3, but I also converted all of them to ActionScript 2 for a few sites who would not accept AS3 ads.

This first one is the 300×250 version. Be sure to look at the other two, as they are very different designs, by clicking on the page buttons at the bottom of the post.

http://kalinflash.com/wordpress/wp-content/uploads/2011/06/gng/300×250.swf

 

Here is the 728×90 version of the Global Nomad’s Group Mooster Day banner:

http://kalinflash.com/wordpress/wp-content/uploads/2011/06/gng/728×90.swf

 

And here is the 160×600 version of the Global Nomad’s Group Mooster Day banner:

http://kalinflash.com/wordpress/wp-content/uploads/2011/06/gng/160×600.swf

 

Hotel Contest Microsite

In early 2010 I built a Flash microsite for HomeAway. It was a Griswolds Vacation themed contest where people could upload their videos and stories describing their worst hotel nightmares. I worked with the Kyte API for video serving, built a voting system and integrated a bunch of pre-built timeline animations.

In early 2010 I built a Flash microsite for HomeAway. It was a Griswolds Vacation themed contest where people could upload their videos and stories describing their worst hotel nightmares. I worked with the Kyte API for video serving, built a voting system and integrated a bunch of pre-built timeline animations.

The site was designed only to be used for this special event, but I did capture a couple recordings of it in use.

This microsite and campaign won a Gold Effie and was an honoree at the 15th annual Webby Awards. You can get more information and watch the Griswolds Vaction film at The HomeAway Campaign page at Publicis’ website.

And here’s another example of the site in use:

Advanced Flash YouTube Brand Channel

In 2009 I built T-Mobile’s YouTube brand channel. I added all of the YouTube sharing features into the Flash itself, so you could comment, rate, share, favorite, etc, right from within the SWF.

In 2009 I built T-Mobile’s YouTube brand channel. You can see the first version of that app in this video:

In the second version of this channel, however, I added all of the YouTube sharing features into the Flash itself, so you could comment, rate, share, favorite, etc, right from within the SWF. Needless to say it involved some intense YouTube API integration. At one point YouTube was showing this channel around to clients as an example of what could be done with their brand channels. I just wish I’d captured a video of it in its final state, since it’s no longer in use.