Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// <reference path="../typings/jquery/jquery.d.ts" />
- declare var stage: any, exportRoot: any, loader: any, createjs: any;
- declare var require: (modulo: Array<any>, moduleId: Function) => any;
- var lib = lib || {};
- var images = images || {};
- class Hud {
- canvas: HTMLCanvasElement;
- subtitulos: Boolean = false;
- divSubtitulos: HTMLDivElement;
- private _redimensionar: Boolean = false;
- get redimensionar(): Boolean {
- return this._redimensionar;
- }
- set redimensionar(resize: Boolean) {
- if (resize) {
- (<any>window).addEventListener("resize", this.redimensionarCanvas, false);
- } else {
- (<any>window).removeEventListener("resize", this.redimensionarCanvas, false);
- }
- this._redimensionar = resize;
- }
- constructor(canvas: HTMLCanvasElement) {
- this.canvas = canvas;
- }
- private redimensionarCanvas = () => {
- var windowWidth = (<any>window).innerWidth ;
- var windowHeight = (<any>window).innerHeight;
- var canvasWidth = this.canvas.width;
- var canvasHeight = this.canvas.height;
- var scaleX = windowWidth / canvasWidth;
- var scaleY = windowHeight / canvasHeight;
- stage.scaleX = scaleX;
- stage.scaleY = scaleY;
- stage.canvas.width = windowWidth;
- stage.canvas.height = windowHeight;
- console.log("X: " + scaleX + " Y: " + scaleY);
- stage.update();
- }
- public escribirSubtitulo(texto: string): void {
- if (typeof this.divSubtitulos !== "undefined") {
- this.divSubtitulos.innerHTML = texto;
- } else {
- console.log("ERROR: debes seleccionar primero el div donde se desplegaran los subtitulos");
- }
- }
- }
- class PlayerHtml5 {
- canvas: HTMLCanvasElement;
- debug: boolean;
- usarLocalStore: boolean;
- hud: Hud;
- pasoActual: any;
- listaPasos: Array<any>;
- constructor(canvas: HTMLCanvasElement) {
- this.canvas = canvas;
- this.hud = new Hud(this.canvas);
- }
- public init(pasoObjeto: any, nombrePaso: string): void {
- loader = new createjs.LoadQueue(false);
- loader.installPlugin(createjs.Sound);
- loader.loadManifest(pasoObjeto.properties.manifest);
- exportRoot = new pasoObjeto[nombrePaso]();
- (<any>window).handleFileLoad = evt => {
- if (this.debug) {
- console.log("cargando archivos" + evt.item.src);
- }
- if (evt.item.type == "image") {
- images[evt.item.id] = evt.result;
- }
- };
- (<any>window).handleComplete = () => {
- if (typeof stage === "undefined") {
- stage = new createjs.Stage(this.canvas);
- }
- stage.addChild(exportRoot);
- stage.update();
- createjs.Ticker.setFPS(pasoObjeto.properties.fps);
- createjs.Ticker.addEventListener("tick", stage);
- };
- loader.addEventListener("fileload", (<any>window).handleFileLoad);
- loader.addEventListener("complete", (<any>window).handleComplete);
- }
- public limpiarCanvas(): void {
- if (typeof stage !== "undefined") {
- stage.removeAllChildren();
- createjs.Sound.stop();
- createjs.Sound.removeAllSounds();
- }
- if (this.hud.subtitulos) {
- if (this.hud.divSubtitulos !== undefined) {
- this.hud.escribirSubtitulo(" ");
- }
- }
- this.hud.canvas.width = this.hud.canvas.width;
- }
- public cargarPaso(paso: any) {
- if (typeof (<any>window).stage !== "undefined") {
- this.limpiarCanvas();
- }
- require([paso], pasoJs => {
- this.init(pasoJs, paso);
- });
- }
- public reproducirSonidoPorId(id: string): void {
- createjs.Sound.play(id);
- }
- public irAEtiqueta(etiqueta: string): void {
- exportRoot.gotoAndPlay(etiqueta);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement