npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

looped-events

v0.0.58

Published

an animation library (based upon greensock, jquery and raphael)

Downloads

9

Readme

LoopedEvents

The basic idea of this package (which will be embedded in the liquidScreen package, is to make animations easy.

##Demo##

The easiest way is to to use the integrated editor. If you want to have a more detailed look how to add events, have a look at the wiki

##Installation

	npm install looped-events

##Usage

First you require the library:

	var loop = require('looped-events');
	

##Utilizing it in your project

If you want to use the LoopedEvents editor, the best starting point would be the minimal files you find in the minimal folder.

A minimal html file with an embedded editor looks like this:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>LoopedEvents Minimal</title>

	<link rel="stylesheet" href="node_modules/looped-events/css/interface.css">
	<link rel="stylesheet" href="node_modules/looped-events/css/codemirror.css">
	<script src="bundle.js"></script> 
 
  </body>
</html>

The minimal index.js file would look like this:

	var $               = require('jquery');
	var loop            = require('looped-events');
	
	 $(document).ready(function(){
        "use strict";

      
        var events = [];
        
        var e = {
        type: "greensock",  
        div: "Sample",     // this  preupposes that a Sample div is existent  
        time: 1000,
        duration: 2000,
        background: "red",
        }; 

        events.push(e);
        
        
        animator = new loop.Animator({
                                loop: true,
                                events: events,
                                interval: 60, 
                                autostart: true,
                                development: true,
                                templateFile: './node_modules/looped-events/templates/text_effects.tmp.json'
                            });


	});

In the minimal folder you will find a complete framework that will allow you to set up a minimal project.

##Browserify

In order to use it, you have to browserify your project. The command that does it is:

browserify -t browserify-css lib/index.js > bundle.js
 
 // and for the minified version
browserify -t lib/index.js | uglifyjs > bundle.min.js

##Creating the animator object

You may have a multitude of animator objects - and there are varios ways of creating them. So have a look at the parameters:

     var animator = new loop.Animator({
                                loop: true,
                                events: events,
                                interval: 60, 
                                autostart: true,
                                development: true,
                                fixed: false,
                                templateFile: './node_modules/looped-events/templates/collected.tmp.json'
                            });
  • the loop parameters sets if the animation shall be repeated till it's stopped. (If you want to start manually, you invoke: animator.start(), if you want to stop: animator.pause(). Calling animator.rewind() goes back to start.

  • the events parameters takes an array of events. You might create this manually but usually you would pass a json file. This will be explained later.

  • the interval parameter determines the ms after which the player loop is invoked again

  • autostart - set it to true if you want to start the animation immediately

  • development - when you set this as true you will see the editor at the bottom of your browser window

  • fixed - setting fixed as true will cause the editor to stick at the bottom, setting it to false whill make it dynamic. Hovering over the bottom of the screen will make the editor appear, leaving it will cause it to disappear

  • templateFile - The template file is crucial, since you can use a lot of templates and don't have to worry about writing events manually. If you omit this field, the editor will use the internal database. But if you do this right from the start it will be empty.

##Extending the templates

When you are working with the editor, you may save your json-files in the browser file system (via the great nedb library. When you click on the cube icon, you can see all your templates. Copy paste them and store them as a *.json file. Now you can use your own templates.

##Storing and loading events

When you click on the info button of the eidtor, you can see all your events in json-format. Copy paste them and store them in your own myevents.json file (or whatever it is called) The settings of your projects will also be encapsulated.

This allows you to start your animator after a particular *.json file has been read in, like this:

       $.ajax({
          url: "myevents.json",
          cache: false,
          dataType: "json",
          success: function(data){
            if ( typeof(data) === "object")
                {
                if (data.interval && data.loop)
                    {
                    var m = new loop.Animator(data);
                    window.animator = m;
                    }
                else alert("it seems this is no valid LoopedEvents format");
                }
          },
          error: function(e, xhr){
            alert("PROBLEME ");
          }
        });

The idea behind this is that you may trigger a lot of animations during runtime - and that you may want to have a multitude of animator objects.

##Development

However, this way of invoking the animator objects just makes sense if you want to go into production. For development there is an easier way to store your animations.

You just click on the diskette icon, give your animation a name and then it will be stored in the local database.

You may also merge building blocks into a bigger animation. Say you have an svg.json animation and want to add it to your animation at 0'48'', you go to the console and write:

	loopedEvents.interface.merge_file("svg.json", 48000); 

loopedEvents is a windows.global

##Format

When your are working with the editor you have to be aware, that the internal representation in the CodeMirror</a href> window does not follow the javascript, but json notation. So all the properties have to be written in brackets:

"color": "red"

instead of

color: "red"

and you have to be careful with the trailing comma.

If your syntax is not correct the editor simply will not store it.

#Features

The style properties you can manipulate with the loopedEvents library are endless. It allows almost everything, that you can do with the Greensock library. Much slower, but also supported: the JQUery library. Another cool library -which is embedded is Raphael (mainly for the treatment of svg graphics)
One very nice feature: There is a template that allows ** progressive *.svg painting**

Since the power of loopedEvents depends upon the multitude of usable templates, it makes sense to extend the template system.

#License

MIT

#Copyright

Copyright © 2015. Phalanstere

icons: thanks to Muneer A. Safiah, Mateo Zlatar, Felipe Santana from Noun Project