{"id":13774721,"url":"https://github.com/mayakwd/as3-eaze-tween","last_synced_at":"2026-03-14T09:08:44.830Z","repository":{"id":25921211,"uuid":"29362259","full_name":"mayakwd/as3-eaze-tween","owner":"mayakwd","description":"Eaze Tween: smart, fast, chainable and compact Flash AS3 tweening library","archived":false,"fork":false,"pushed_at":"2016-03-23T14:49:12.000Z","size":518,"stargazers_count":20,"open_issues_count":0,"forks_count":8,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-11T06:37:00.980Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"ActionScript","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/mayakwd.png","metadata":{"files":{"readme":"README.mkd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-16T18:41:04.000Z","updated_at":"2021-04-03T08:08:01.000Z","dependencies_parsed_at":"2022-08-24T07:40:24.208Z","dependency_job_id":null,"html_url":"https://github.com/mayakwd/as3-eaze-tween","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mayakwd/as3-eaze-tween","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayakwd%2Fas3-eaze-tween","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayakwd%2Fas3-eaze-tween/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayakwd%2Fas3-eaze-tween/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayakwd%2Fas3-eaze-tween/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mayakwd","download_url":"https://codeload.github.com/mayakwd/as3-eaze-tween/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayakwd%2Fas3-eaze-tween/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28006375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-08-03T17:01:29.602Z","updated_at":"2025-12-24T19:02:54.469Z","avatar_url":"https://github.com/mayakwd.png","language":"ActionScript","funding_links":[],"categories":["Application Frameworks"],"sub_categories":["Animation Framework"],"readme":"as3-eaze-tween\n==============\n\nEazeTween based on [eaze-tween written by philippe.elsass](https://code.google.com/p/eaze-tween/)\n\n\nChangelog\n---------------------\nFeb 9, 2015\n- Added multi-target support\n\nJan 20, 2015\n- repeat() method added\n\nEaze was designed to:\n---------------------\n\n- bring back lightness and simplicity in Flash tweening,\n- introduce a smartest syntax and event system,\n- provide the best performance compromise,\n- with minimal classes quantity and no dependencies.\n- The result is a compact (~4Kb raw engine and ~9Kb with all plugins), highly optimized library, with a jQuery-like syntax.\n\nBasic syntax and events\n-----------------------\n\nBasic tweening is classic:\n```actionscript\neaze(target).to(duration, { x:dx, y:dy });\neaze(target).from(duration, { x:dx, y:dy });\neaze(target).apply({ x:dx, y:dy }); // set values immediately\neaze(target).play(\"label\"); // see timeline tweening below\n\neaze(target).to(duration, { width:dw }, false /*don't overwrite existing tweens*/);\n```\n\nMulti-target tweening:\n```actionscript\neaze([circle, rectangle]).to(duration, {x: dx, y:dy });\neaze(new \u003cShape\u003e[circle, rectangle]).to(duration, {x: dx, y:dy });\n```\n\nOriginal, completion-friendly, event system:\n```actionscript\neaze(target).to(duration, { x:dx, y:dy })\n    .onUpdate(handler, param1, etc)\n    .onComplete(handler, param1, param2, etc);\n\n// identical to:\nTweenMax.to(target, duration {\n    x:dx, y:dy,\n    onUpdate:handler, onUpdateParams:[param1, etc],\n    onComplete:handler, onCompleteParams:[param1, param2, etc]\n});\n```\n\nAnd to set the easing function (optimized Robert Penner functions):\n```actionscript\neaze(target).to(duration, { x:dx, y:dy })\n    .easing(Cubic.easeInOut);\n// default function is Quadratic.easeOut\n```\n\nTween chaining, delaying and repeating\n--------------------------------------\nTweens can be chained (chained tweens are started at the end of parent tween):\n```actionscript\neaze(target)\n    .from(duration, { x:dx, y:dy }) \n    .to(duration, { x:dx, y:dy })\n    .play(\"over\")\n    .chain(otherTarget).to(duration, { x:dx, y:dy })\n    .apply({ x:dx, y:dy });\n// tweens will be executed one by one\n```\n\nA delay is \"just\" a blank tween:\n```actionscript\neaze(target).delay(1).onComplete(handler, arg1);\n\n// identical to\nTweenMax.delayedCall(1, handler, [arg1]);\n// and also BTW\nsetTimeout(handler, 1000, arg1);\n```\n\nNow you can chain a tween to the delay tween:\n```actionscript\neaze(target).delay(1)\n    .to(duration, { x:dx, y:dy });\n\n// identical to:\nTweenMax.to(target, duration, {\n    delay:1,\n    x:dx, y:dy\n});\n```\n\nUnlike with TweenMax.from(), if a tween is delayed the target will NOT be updated before the delay has expired. But you can call .updateNow() to replicate this useful behavior:\n```actionscript\neaze(target).delay(1)\n    .from(duration, { x:dx })\n    .updateNow(); // update target immediately\n\n// identical to:\nTweenMax.from(target, duration, { \n    delay:1,\n    x:dx\n});\n```\n\nAlso you can repeat tween with method \"repeat\":\n```actionscript\neaze(target)\n\t.to(0.8, {x: 100})\n\t.repeat(2);\n```\nNumber of repeat can be positive, or negative for endless repeating (-1 by default - endless).\nYou can't repeat full chain of tweens, only one by one.\n\nSpecial properties\n------------------\nAutomatic relation between alpha \u0026 visible:\n```actionscript\neaze(target).to(duration, { alpha:0 }); // set visible to false when alpha==0\neaze(target).to(duration, { alphaVisible:0 }); // do not change visibility\n\n// identical to\nTweenMax.to(target, duration { autoAlpha:0 });\nTweenMax.to(target, duration { alpha:0 });\n```\n\nOriginal tint mixing:\n```acrionscripteaze(target).to(1).tint(0xffffff);\neaze(target).to(1).tint(0xffffff, colorize, multiply);\n// colorize[0..1]: color offset ratio (tint strength)\n// multiply[0..2]: original color multiplicator (keep original color)\n\n// remove tint\neaze(target).to(1).tint();\n\n// but you can also use a more classic syntax:\neaze(target).to(1, { tint:0xffffff });\neaze(target).to(1, { tint:[0xffffff, colorize, multiply] });\neaze(target).to(1, { tint:null }); // remove tint\n```\n\nOriginal filter syntax:\n```actionscript\neaze(target).to(duration)\n    .filter(BlurFilter, { blurX:5, blurY:5, quality:2 });\n\neaze(target).to(duration)\n    .filter(GlowFilter, { blurX:20, blurY:20, color:0x00ccff, knockout:true });\n\n// but you can also use a more classic syntax:\neaze(target).to(duration, { \n        blurFilter:{ blurX:5, blurY:5 }\n```\n\nSmart color transforms tweening:\n```actionscript\n// .colorMatrix(brightness[-1..1], contrast[-1..1], saturation[-1..1], \n//              hue[-180..180], tint[RGB], colorize[0..1])\neaze(target).to(duration)\n    .colorMatrix(0.2, 0, -1); // brightness, contrast, saturation, etc.\n\n// remove transformation\neaze(target).to(duration).colorMatrix();\n\n// or using standard filter tween syntax\neaze(target).to(duration)\n    .filter(ColorMatrixFilter, { \n        brightness:0.2, saturation:-1\n    });\n});\n\n// filter built using Quasimondo's (stripped-down) ColorMatrix class\n```\n\nClassic volume syntax:\n```actionscript\neaze(target).to(duration, { volume:0.5 });\n```\n\nOriginal Bezier tween syntax:\n```actionscript\n// Bezier tween to end value with one or more control points\neaze(target).to(duration, { x:[100, 150] });\neaze(target).to(duration, { x:[100, 120, 150] });\n\n// Bezier \"through\" tween to end value with one or more points to cross\neaze(target).to(duration, { x:[[100, 150]] });\neaze(target).to(duration, { x:[[100, 120, 150]] });\n\n// respectively identical to\nTweenMax.to(target, duration, { bezier:[{x:100}, {x:150}] });\nTweenMax.to(target, duration, { bezier:[{x:100}, {x:120}, {x:150}] });\n\n// and\nTweenMax.to(target, duration, { bezierThrough:[{x:100}, {x:150}] });\nTweenMax.to(target, duration, { bezierThrough:[{x:100}, {x:120}, {x:150}] });\n```\n\nOriginal short rotation syntax:\n```actionscript\n// works with any property\neaze(target).to(1).short(160);\neaze(target).to(1).short(Math.PI/4, \"angleProp\", true /*use radian*/);\n```\n\nBuilt-in scale (scaleX/scaleY) tweening:\n```actionscript\neaze(target).to(duration, { scale:0.5 });\n```\n\nUseful Rectangle tweening:\n```actionscript\n// animate .scrollRect\neaze(target).to(1).rect(new Rectangle(0,0,100,100));\n// or other rectangle properties\neaze(target).to(1).rect(new Rectangle(0,0,100,100), \"rectProp\");\n```\n\nOf course all these special tweening properties work backward using eaze(target).from().\n\nTimeline frame tweening\n-----------------------\nOriginal frame tweening options:\n```actionscript\n// tween clip timeline at appropriate linear speed\neaze(target).play(); // totalFrames\neaze(target).play(12);\neaze(target).play(\"label\");\neaze(target).play(\"start+end\"); // from label \"start\" to label \"start+end\"\neaze(target).play(\"start\u003eend\"); // from label \"start\" to label \"end\"\n\n// but you can also use a more classic syntax:\neaze(target).to(duration, { frame:\"label\" });\n```\n\nHow to use the raw engine (4Kb) only?\n-------------------------------------\nPlugins will be loaded as soon as your code imports the special eaze() function.\n\nPlugins will NOT be loaded if you use the raw tween engine:\n```actionscript\n// raw engine, no plugin dependency (cool for your loader animations)\nnew EazeTween(target).to(...)\n\n// using eaze() will automatically import the plugins\neaze(target).to(...)\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayakwd%2Fas3-eaze-tween","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmayakwd%2Fas3-eaze-tween","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayakwd%2Fas3-eaze-tween/lists"}