{"id":35233782,"url":"https://github.com/bowlerhatllc/gtween-haxe","last_synced_at":"2026-04-02T18:45:42.938Z","repository":{"id":297741692,"uuid":"997666626","full_name":"BowlerHatLLC/gtween-haxe","owner":"BowlerHatLLC","description":"A port of the AS3 GTween library to Haxe","archived":false,"fork":false,"pushed_at":"2025-06-13T17:01:58.000Z","size":1643,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-17T02:38:00.876Z","etag":null,"topics":["animation","animation-library","haxe","openfl","tween","tweening-engine","tweening-library"],"latest_commit_sha":null,"homepage":"https://bowlerhatllc.github.io/gtween-haxe/api/","language":"Haxe","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BowlerHatLLC.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"joshtynjala","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":"joshtynjala","issuehunt":null,"otechie":null,"custom":null}},"created_at":"2025-06-06T23:40:15.000Z","updated_at":"2026-02-01T16:01:29.000Z","dependencies_parsed_at":"2025-06-08T23:27:32.895Z","dependency_job_id":"5521ef99-c9f5-456e-9f7a-599f4756101f","html_url":"https://github.com/BowlerHatLLC/gtween-haxe","commit_stats":null,"previous_names":["joshtynjala/gtween-haxe","bowlerhatllc/gtween-haxe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BowlerHatLLC/gtween-haxe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BowlerHatLLC%2Fgtween-haxe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BowlerHatLLC%2Fgtween-haxe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BowlerHatLLC%2Fgtween-haxe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BowlerHatLLC%2Fgtween-haxe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BowlerHatLLC","download_url":"https://codeload.github.com/BowlerHatLLC/gtween-haxe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BowlerHatLLC%2Fgtween-haxe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31313308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["animation","animation-library","haxe","openfl","tween","tweening-engine","tweening-library"],"created_at":"2025-12-30T03:23:19.667Z","updated_at":"2026-04-02T18:45:42.922Z","avatar_url":"https://github.com/BowlerHatLLC.png","language":"Haxe","funding_links":["https://github.com/sponsors/joshtynjala","https://liberapay.com/joshtynjala"],"categories":[],"sub_categories":[],"readme":"## GTween for Haxe\n\nGTween is a small but extremely robust [Haxe](https://haxe.org/) library for programmatic tweening, animation, and transitions. It is based on the AS3 library for Adobe Flash built by Grant Skinner of _gskinner.com_.\n\nThe GTween library is currently comprised of 3 key classes:\n\n* **GTween**. A robust tweening engine, packed full of innovative features.\n* **GTweenTimeline**. A powerful virtual timeline that extends GTween to enable you to sequence tweens and actions.\n* **GTweener**. A static interface to GTween.\n\nGTween also comes with a variety of plug-ins and easing classes to customize your animations.\n\nThe Haxe version of GTween is designed to be added to _any_ Haxe project, not just those that depend on libraries like OpenFL that provide an Adobe Flash-inspired API. A subset of GTween's plugins are restricted to OpenFL features only, but the core library is written in pure Haxe and can absolutely be used without OpenFL as a dependency.\n\nGTween is licensed under the **MIT license**, so it can be used and modified with **almost no restrictions in commercial projects** beyond maintaining the header in the source files.\n\n## Features\n\n### Size \u0026 Performance\n\nDespite it's broad feature set, GTween is very small. GTweenTimeline, GTweener, and plugins optionally add a bit more.\n\nGTween also demonstrates high performance, able to create and run 5000 tweens per second at up to 20fps on a 2.5ghz Macbook Pro.\n\n### Developer Oriented\n\nGTween was originally built for ActionScript 3 developers from the ground up, and it fits into the Haxe and OpenFL ecosystems equally well. It uses a more conventional instance-oriented model, rather than a static interface (though one is supported through GTweener).\n\nIt also supports both callbacks and OpenFL events. The former are faster, while the latter provide more control and consistency with OpenFL standards.\n\n### Flexible\n\nGTween works with **any numeric property of any object**.\nYou can use it to tween the volume of a sound, the size of a window, 3D properties, or the value of \"foo\" on a custom object type, as easily as you would tween the x and y properties of a sprite.\n\nYou can set up a tween in a **single line of code**, or stick to using strictly typed properties. You can maintain references to your tweens, or create them and forget them - GTween intelligently manages tweens to prevent them from being garbage collected while they are active.\n\n```haxe\n// unreferenced tween, in one line:\nnew GTween(myTarget, 2, {x:50, alpha:1}, {ease:Sine.easeInOut});\n\n// referenced tween, typed properties:\nvar myTween:GTween = new GTween(myTarget, 2);\nmyTween.setValue(\"x\",50);\nmyTween.setValue(\"alpha\",1);\nmyTween.ease = Sine.easeInOut;\n\n// you can also do referenced tweens in one line.\n```\n\n### Proxy\n\nGTween provides a unique proxy property that allows you to work with tween destination values the same way you would work with them on the target object.\nThe proxy object effectively \"**stands in**\" for your target object.\n\nThis simple example shows how you can use the proxy to tween the target object 100 pixels to the right of its current position.\n\n```haxe\nmyTween.proxy.x += 100;\n```\n\n### Sequencing\n\n([timeline demo](https://bowlerhatllc.github.io/gtween-haxe/samples/openfl/GTweenTimelineDemo/))\n\nGTweenTimeline lets you set up complex animations or transitions on a **virtual timeline**.\nIn addition to tweens, you can add actions and labels at specified positions.\nPause, reverse, and jump to the start or end of the full timeline as easily as you would with a single tween.\nYou can even **nest timelines** in each other, just like you can do in the Flash or OpenFL.\n\nGTween even lets you **synchronize frame based animations** to time based programmatic tweens.\nEven if you pause the tween, or change the framerate, your awesome animated effects will stay perfectly timed.\n\n```haxe\nvar myTween:GTween = new GTween(myTarget, 2, {x:50, alpha:1}, {ease:Sine.easeInOut});\nmyTimeline.addTween(1, myTween);\nmyTimeline.addCallback(3, myCallback, [param1, param2]);\n```\n\n### Interrupt\n\nModify your tween while it is playing, and it will attempt to accommodate those changes.\n\n### Control\n\nGTween offers an unprecedented level of control over your tweens.\nYou can **pause one or all tweens**.\nYou can specify how many times a tween repeats, and whether it should reflect on each repeat (play backwards).\nYou can **jump to any position** in your tween at any time.\n\n### Timing\n\nGTween supports both frame and time based tweens on a per tween basis. You can specify positions and durations in either frames or seconds.\n\n### Extensibility\n\n([color adjust plugin demo](https://bowlerhatllc.github.io/gtween-haxe/samples/openfl/GTweenColorAdjust/))\n\nThe code base for GTween is straightforward and easy to read, extend, and modify. It also supports an easy to use, robust plug-in model which makes it easy to add and share custom functionality without having to modify or extend the core classes.\n\n### Etcetera\n\nHere's a quick list of a few more features you might find interesting:\n\n* plug-ins for common tasks like synchronizing timeline animations, calculated motion blur, adjusting color, snapping values, and more.\n* simple sequencing with nextTween.\n* delay the start of your tween with the delay property.\n* slow down or speed up (even reverse) one tween or all tweens with time scaling.\n* associate arbitrary data with your tween (handy for storing temporary transition related values).\n* swap start and end values easily.\n* calculate the optimal duration for a timeline based on the tweens and callbacks in it.\n* change, init, and complete callbacks.\n\nThe best place to learn about these and other features is by checking out the included demos, and flipping through the [API documentation](https://bowlerhatllc.github.io/gtween-haxe/api/).\n\n## Demos\n\nAll source code for these demos is included in the Git repository.\n\nThe following demos are available for [OpenFL](https://openfl.org/), a library that implements the Adobe Flash Player API in Haxe:\n\n* [Advanced Sequencing Demo](https://bowlerhatllc.github.io/gtween-haxe/samples/openfl/GTweenTimelineDemo/)\n* [Tween Interrupt Demo](https://bowlerhatllc.github.io/gtween-haxe/samples/openfl/GTweenInterrupt/)\n* [Color Adjust Plugin Demo](https://bowlerhatllc.github.io/gtween-haxe/samples/openfl/GTweenColorAdjust/)\n* [Motion Blur and Simple Sequencing Demo](https://bowlerhatllc.github.io/gtween-haxe/samples/openfl/GTweenSimpleSequencing/)\n* [GTween Speed Demo](https://bowlerhatllc.github.io/gtween-haxe/samples/openfl/GTweenSpeedDemo/)\n* [GTweener Demo](https://bowlerhatllc.github.io/gtween-haxe/samples/openfl/GTweenerDemo/)\n\nThe next demos compile pure Haxe to JavaScript (JS) and manipulate [HTML DOM](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction) nodes:\n\n* [Tween Interrupt Demo](https://bowlerhatllc.github.io/gtween-haxe/samples/js/GTweenInterrupt/)\n* [Motion Blur and Simple Sequencing Demo](https://bowlerhatllc.github.io/gtween-haxe/samples/js/GTweenSimpleSequencing/)\n* [GTween Speed Demo](https://bowlerhatllc.github.io/gtween-haxe/samples/js/GTweenSpeedDemo/)\n* [GTweener Demo](https://bowlerhatllc.github.io/gtween-haxe/samples/js/GTweenerDemo/)\n\n## Documentation\n\nSee the [API reference](https://bowlerhatllc.github.io/gtween-haxe/api/) for descriptions of all classes, interfaces, methods, and properties.\n\n## Download\n\nUse the [**haxelib install**](https://lib.haxe.org/documentation/using-haxelib/#install) command to download GTween for Haxe.\n\n```sh\nhaxelib install gtween\n```\n\nRequires Haxe 4.0 or newer.\n\n## Feedback\n\nFound a bug? Report an [issue](https://github.com/BowlerHatLLC/gtween-haxe/issues).\n\nWant to extend the library? Submit a [pull request](https://github.com/BowlerHatLLC/gtween-haxe/pulls).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbowlerhatllc%2Fgtween-haxe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbowlerhatllc%2Fgtween-haxe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbowlerhatllc%2Fgtween-haxe/lists"}