Soon you’ll be able to meet a new playable eye candy, prepared by the well-coordinated duo – Mr. Frognfly and me.
Soon you’ll be able to meet a new playable eye candy, prepared by the well-coordinated duo – Mr. Frognfly and me.
In case you’re going to attend WebExpo 2010, I’d love to invite you to my talk.
Some people don’t like Flash because they experienced it in the form of annoying Flash banners and intro animations. But this format is groundbreaking and it’s possible to create almost anything with it; from simpliest animations to very complicated and sohpisticated applications.
Flash has given me absolute creative freedom for 13 years now. I learned how to use it effectively and created my own process which I will introduce to you…
I’m illustrator, graphic designer and also a programmer of Flash games. Most of our games are designed for Facebook. They have to be fast, small and very attractive. I will share my experience with development of these games.
I will show you my workflow from application design to execution. I use self-made framework that is available as opensource. I will also talk about more general process of preparing and optimizing data.
Pokud jdete na WebExpo 2010, rád bych Vás pozval na svou přednášku.
Flash může být někým vnímán negativně po zkušenostech s otravnými bannery a intro animacemi, kde bývá tato technologie použita. Přitom je tento formát naprosto přelomový a je v něm možno vytvořit takřka cokoliv, od nejjednodušších animací, po velmi komplikované a propracované aplikace.
Mě Flash dává už 13 let naprostou tvůrčí svobodu. Naučil jsem se ho efektivně využívat a vytvořil si řadu vlastních postupů, které Vám představím.
Jsem kreslíř, grafik a v poslední době také programátor flashových her. Navrhujeme hry hlavně pro Facebook, které musejí být rychlé, malé a velmi atraktivní. I o zkušenosti z vývoje těchto her se s Vámi chci podělit.
Představím vám svou workflow od návrhu aplikace po realizaci. Používám svůj vlastnoručně naprogramovaný framework, který jsem publikoval jako opensource a je tak k dispozici i vám. Kromě toho se budu také zabývat obecnými postupy přípravy a optimalizace dat.
A somewhat different approach to periodical calling of a method. This time with TweenLite/TweenMax by Greensock
As I said before, last few months I’ve been working for Falanxia.com, where I help to develop social games in Flash (and more platforms coming). I was not very happy with the way how to periodically call a method:
var timer:Timer = new Timer(10, 100); // call a method 100 times with 10 ms delay) timer.addEventListener(TimerEvent.TIMER, method); timer.start();
Is there a shorter approach to do the same thing? While we already use TweenLite/TweenMax a lot, I thought there has to be a plugin which should handle this task (no, I don’t need TweenLite.delayedCall(). Well, nope, there’s not. But sure it can be handled this way:
var tweenObj:Object = {pass:0};
TweenLite.to(tweenObj, 1, {ease:Liner.easeNone, onUpdate:method}); // 100 * 10 ms = 1 second
IMHO this way is a bit cumbersome and you need to create an Object to be tweened. I came up with a simple TweenLite plugin to do the job:
/*
* Falanxia Utilitaris.
*
* Copyright (c) 2010 Falanxia (http://falanxia.com)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package com.falanxia.utilitaris.plugins {
import com.greensock.*;
import com.greensock.plugins.*;
/**
* Dummy tween plugin.
*
* @author Vaclav Vancura @ Falanxia a.s. vaclav@falanxia.com
* @author Falanxia (falanxia.com
* @since 1.0
*/
public class DummyTweenPlugin extends TweenPlugin {
public static const API:Number = 1.0;
protected var _target:Object;
/**
* Constructor.
*/
public function DummyTweenPlugin() {
super();
this.propName = "dummy";
this.overwriteProps = ["dummy"];
}
/**
* Tween initialization.
* Gets called when any tween of the special property begins. Store any
* initial values and/or variables that will be used in the "changeFactor"
* setter when this method runs.
* @param target Target object of the TweenLite instance using this plugin
* @param value The value that is passed in through the special property
* @param tween The TweenLite or TweenMax instance using this plugin
* @return If the initialization failed, it returns false. Otherwise true.
* It may fail if, for example, the plugin requires that the target be a
* DisplayObject or has some other unmet criteria in which case the plugin
* is skipped and a normal property tween is used inside TweenLite
*/
override public function onInitTween(target:Object, value:*,
tween:TweenLite):Boolean {
return true;
}
}
}
How to use it?
TweenPlugin.activate([DummyTweenPlugin]);
// first you need to activate the plugin, but only once in the whole app
TweenLite.to(this, 1.0, {dummy:{}, onUpdate:method});
This way there’s no need to create an Object variable. I think it’s a bit simpler. Actually this article took much more time to write than to code the DummyTweenPlugin.
Fracthor: Status update.
As I recently wrote, there’s a new game in production.
Mr. Chalupa and me are working on a new action title. Watch this space for updates!