Skip to content

Instantly share code, notes, and snippets.

@droidalex
Created September 21, 2016 16:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save droidalex/43d36a2f17dda57530d143db32d5c8d1 to your computer and use it in GitHub Desktop.
Save droidalex/43d36a2f17dda57530d143db32d5c8d1 to your computer and use it in GitHub Desktop.
Simple Banner
package;
import flixel.FlxG;
import flixel.FlxSprite;
import flixel.FlxState;
import flixel.text.FlxText;
import flixel.ui.FlxButton;
import flixel.math.FlxMath;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import haxe.crypto.Base64;
import haxe.io.Bytes;
import sys.io.FileOutput;
import flixel.input.mouse.FlxMouseEventManager;
import openfl.Lib;
class Banner extends FlxSprite
{
public var url_dest:String;
public var url_img:String;
function onMouseUp(sprite:FlxSprite)
{
Lib.getURL (new URLRequest(url_dest));
}
override public function new(x:Float,y:Float,width:Float,height:Float,url_img,url_dest):Void
{
super();
this.x=x;
this.y=y;
this.width=width;
this.height=height;
this.url_dest=url_dest;
this.url_img=url_img;
var image_Loader = new Loader();
image_Loader.load(new URLRequest(url_img));
image_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
image_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
}
public function onLoaded(e:Event):Void
{
get_It(Base64.encode(e.target.data));
}
public function get_It(img64:String)
{
var arq = "assets/data/banner.jpg";
var bb:Bytes = Base64.decode(img64);
var fo:FileOutput = sys.io.File.write(arq, true);
fo.write(bb);
fo.close();
}
public function onComplete(e:Event):Void
{
try
{
this.loadGraphic("assets/data/banner.jpg");
FlxMouseEventManager.add(this, onMouseUp);
}
catch( msg : String )
{
trace("Error message : " + msg );
}
}
}
package;
import flixel.FlxG;
import flixel.FlxSprite;
import flixel.FlxState;
import flixel.text.FlxText;
import flixel.ui.FlxButton;
import flixel.math.FlxMath;
class MenuState extends FlxState
{
private var banner:Banner;
override public function create():Void
{
super.create();
//------- This can be usefull with rotating banners.
//------- Parameters: x, y, width, height, url-image, url-destination
banner = new Banner(10,10,400,400,"https://cex.io/widget/dark/300/btc-usd","http://www.bing.com/search?q=haxeflxel");
add(banner);
}
override public function update(elapsed:Float):Void
{
super.update(elapsed);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment