Skip to main content

a funky drag and drop using greensock and as3

click here to download
a cool drag and drop using as3 and greensock
source code
=================================================================

import com.greensock.*;
import com.greensock.easing.*;
createEvents();
function createEvents():void {

for (var i:Number=1; i<4; i++) {
this["drag"+i].__x=this["drag"+i].x;
this["drag"+i].__y=this["drag"+i].y;
this["drag"+i].answer=String("drop"+i);
this["drag"+i].index=1;
this["drag"+i].buttonMode=true;
this["drag" + i].addEventListener(MouseEvent.MOUSE_DOWN,dragIcon);
this["drag" + i].addEventListener(MouseEvent.MOUSE_UP,dropIcon);
}
}
function dragIcon(m:MouseEvent):void {
swap(MovieClip(m.currentTarget));
MovieClip(m.currentTarget).startDrag();
}
function tweenback(__target)
{
__target.stopDrag();
TweenLite.to(__target, 0.5, {x:__target.__x, y:__target.__y, ease:Cubic.easeOut,onComplete:reset});
}
function reset():void
{
createEvents()
}
function dropIcon(m:MouseEvent):void {

if(MovieClip(m.currentTarget).dropTarget.parent.name==MovieClip(m.currentTarget).answer)
{
answerfound(MovieClip(m.currentTarget))
MovieClip(m.currentTarget).buttonMode=false;
MovieClip(m.currentTarget).removeEventListener(MouseEvent.MOUSE_DOWN,dragIcon);
MovieClip(m.currentTarget).removeEventListener(MouseEvent.MOUSE_UP,dropIcon);
MovieClip(m.currentTarget).stopDrag();
}
else
{
MovieClip(m.currentTarget).buttonMode=false;
MovieClip(m.currentTarget).removeEventListener(MouseEvent.MOUSE_DOWN,dragIcon);
MovieClip(m.currentTarget).removeEventListener(MouseEvent.MOUSE_UP,dropIcon);
tweenback(MovieClip(m.currentTarget));
}
}
function answerfound(__target):void
{
TweenMax.to(__target, 0.2, {shortRotation:{rotation:90}});
__target.x=this[__target.answer].x
__target.y=this[__target.answer].y;
TweenMax.to(__target, 0.2, {shortRotation:{alpha:0}});
TweenMax.to(__target, 0.2, {shortRotation:{scaleX:0.2}});
TweenMax.to(__target, 0.2, {shortRotation:{scaleY:0.2}});
}
function swap(o:*):void {
var highestDepth:uint = numChildren - 1;

setChildIndex(this["drag"+o.index],highestDepth);
setChildIndex(o, highestDepth);
}

Comments

Post a Comment

Popular posts from this blog

Better Memory management with PixiJS or How to manage cpu and cpu memory in PixiJS.

PixiJS is my favorite framework when i am looking for a web games specially for mobile or desktop  PixiJS is fast blazing fast and you can get a decent FPS even on older device.   so here is my optimization techniques for PixiJs 1. manage your sprites in a better way use spritesheet to reduce the draw calls create big sprite sheet which contain multiple sprites can be draw in gpu with a single draw call. use TexturePacker  https://www.codeandweb.com/texturepacker  best tool when its comes to spritesheet 2. for floating point calculation round off calculation for example let  speed = 0.75 ; let  position = 100 ; console . log ( Math . round ( speed * position )) 3. don't create very big canvas when u need a big canvas size game just try to create a small canvas and translate it. 4. its very important one managing TextureCache in memory you can get all TextureCache list by using  Object.entries(PIXI.utils.TextureCache); so even you use ap...

adding particles Effect in pixijs using https://pixijs.io/pixi-particles-editor/

adding particle in pixijs is very easy using the below tool more information can be found below https://github.com/pixijs/pixi-particles https://pixijs.io/pixi-particles-editor/ required packages  /// < reference path = "node_modules/pixi-particles/ambient.d.ts" /> import 'pixi-particles' code of particle delcare a     global variable   private emitter ?: Emitter ; const img = PIXI . Texture . from ( "./assets/images/particle.png" ); this . emitter = new Emitter ( this ,[ img ],{ "alpha" : { "start" : 0.62 , "end" : 0.39 }, "scale" : { "start" : 0.1 , "end" : 0.9 , "minimumScaleMultiplier" : 1.25 }, "color" : { "start" : "#ffff8f" , "end" : ...