{"id":13744004,"url":"https://github.com/s9tpepper/robotlegs-starling-plugin","last_synced_at":"2026-01-24T18:02:21.679Z","repository":{"id":1739154,"uuid":"2564594","full_name":"s9tpepper/robotlegs-starling-plugin","owner":"s9tpepper","description":"A Robotlegs plugin that adds some Robotlegs classes to support usage with the Starling framework.","archived":false,"fork":false,"pushed_at":"2013-01-04T02:36:59.000Z","size":2032,"stargazers_count":113,"open_issues_count":6,"forks_count":33,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-11-13T10:29:47.757Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s9tpepper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-10-12T19:01:11.000Z","updated_at":"2023-08-11T03:04:32.000Z","dependencies_parsed_at":"2022-09-04T11:42:09.281Z","dependency_job_id":null,"html_url":"https://github.com/s9tpepper/robotlegs-starling-plugin","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/s9tpepper/robotlegs-starling-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s9tpepper%2Frobotlegs-starling-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s9tpepper%2Frobotlegs-starling-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s9tpepper%2Frobotlegs-starling-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s9tpepper%2Frobotlegs-starling-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s9tpepper","download_url":"https://codeload.github.com/s9tpepper/robotlegs-starling-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s9tpepper%2Frobotlegs-starling-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28733310,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T17:51:25.893Z","status":"ssl_error","status_checked_at":"2026-01-24T17:50:48.377Z","response_time":89,"last_error":"SSL_read: 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":[],"created_at":"2024-08-03T05:01:01.224Z","updated_at":"2026-01-24T18:02:21.662Z","avatar_url":"https://github.com/s9tpepper.png","language":"ActionScript","funding_links":[],"categories":["Frameworks"],"sub_categories":["RobotLegs Framework"],"readme":"# robotlegs-starling-plugin\n\nThis plugin adds some classes to Robotlegs to support usage with the Starling framework. Because the Starling framework uses Stage3D and not the flash.display.DisplayList a StarlingContext must be used along with a StarlingMediator. The rest of the framework usage remains the same.\n\nPull Requests are encouraged! Please if you add/fix anything contribute it back! :)\n\nAdded Classes\n-------------\n* StarlingMediatorMap.as\n* StarlingViewMap.as\n* StarlingViewMapBase.as\n* IStarlingMediatorMap.as\n* IStarlingViewMap.as\n* StarlingContext.as\n* StarlingMediator.as\n* StarlingCommand.as\n\n\nUsage Example\n-------------\nBelow are some excerpts from a very simple usage example. The .fxp file for the example file is in the Downloads section. Below are the key parts.\n\nThe main class set up remains the same:\n\n\tpackage\n\t{\n\t\timport com.example.MyGame;\n\n\t\timport flash.display.Sprite;\n\t\timport flash.events.Event;\n\n\t\timport org.robotlegs.mvcs.StarlingContext;\n\n\t\timport starling.core.Starling;\n\n\t\tpublic class Main extends Sprite\n\t\t{\n\t\t\tprivate var _starling:Starling;\n\t\t\tprivate var _starlingContext:StarlingContext;\n\n\t\t\tpublic function Main()\n\t\t\t{\n\t\t\t\taddEventListener(Event.ADDED_TO_STAGE, onAddedToStage);\n\t\t\t}\n\n\t\t\tprotected function onAddedToStage(event:Event):void\n\t\t\t{\n\t\t\t\t_starling = new Starling(MyGame, stage);\n\t\t\t\t_starling.start();\n\t\t\t}\n\t\t}\n\t}\n\n\nInside the main Starling class (MyGame) sent into the first Starling constructor argument start a subclass of a StarlingContext instance. Usage of the StarlingContext is identical to the default Robotlegs Context class.\n\n\tpackage com.example\n\t{\n\t\timport flash.utils.setTimeout;\n\n\t\timport org.robotlegs.mvcs.StarlingContext;\n\n\t\timport starling.display.Sprite;\n\t\timport starling.events.Event;\n\n\t\tpublic class MyGame extends Sprite\n\t\t{\n\t\t\tprivate var _starlingContext:StarlingContext;\n\n\t\t\tpublic function MyGame()\n\t\t\t{\n\t\t\t\tsuper();\n\n\t\t\t\t_starlingContext = new MyStarlingGameContext(this);\n\n\t\t\t\taddEventListener(Event.ADDED_TO_STAGE, onAddedToStage);\n\t\t\t}\n\n\t\t\tprivate function onAddedToStage(event:Event):void\n\t\t\t{\n\t\t\t\tvar secondView:SecondView = new SecondView();\n\t\t\t\taddChild(secondView);\n\n\t\t\t\t// Test mediator removal\n\t\t\t\tsetTimeout(secondView.parent.removeChild, 3000, secondView);\n\t\t\t}\n\t\t}\n\t}\n\nContents of the MyStarlingGameContext class (StarlingContext subclass):\n\n\tpackage com.example\n\t{\n\t\timport org.robotlegs.mvcs.StarlingContext;\n\n\t\timport starling.display.DisplayObjectContainer;\n\n\t\tpublic class MyStarlingGameContext extends StarlingContext\n\t\t{\n\t\t\tpublic function MyStarlingGameContext(contextView:DisplayObjectContainer=null, autoStartup:Boolean=true)\n\t\t\t{\n\t\t\t\tsuper(contextView, autoStartup);\n\t\t\t}\n\n\t\t\toverride public function startup():void\n\t\t\t{\n\t\t\t\tmediatorMap.mapView(MyGame, MyGameMediator);\n\t\t\t\tmediatorMap.mapView(SecondView, SecondViewMediator);\n\t\t\t\t\n\t\t\t\tcommandMap.mapEvent(FlashEvent.EVENT_NAME, EventCommand);\n\n\t\t\t\tsuper.startup();\n\t\t\t}\n\t\t}\n\t}\n\t\nContents of the EventCommand (StarlingCommand sub-class, alternatively you can no subclass anything and declare a public execute() method, but do not use the default Robotlegs Command class, it will crash.)\n\n\tpackage com.example\n\t{\n\t\timport org.robotlegs.mvcs.StarlingCommand;\n\n\t\tpublic class EventCommand extends StarlingCommand\n\t\t{\n\t\t\tpublic function EventCommand()\n\t\t\t{\n\t\t\t\tsuper();\n\t\t\t}\n\n\t\t\toverride public function execute():void\n\t\t\t{\n\t\t\t\ttrace(\"EventCommand.execute()\");\n\t\t\t}\n\t\t}\n\t}\n\t\nAlternate EventCommand class declaration (you dont get access to default things you might be used to with the default Robotlegs command class, like the injector, mediator map, etc):\n\n\tpackage com.example\n\t{\n\t\tpublic class EventCommand\n\t\t{\n\t\t\tpublic function EventCommand()\n\t\t\t{\n\t\t\t}\n\n\t\t\tpublic function execute():void\n\t\t\t{\n\t\t\t\ttrace(\"EventCommand.execute()\");\n\t\t\t}\n\t\t}\n\t}\n\nAnd finally, the contents of one of the mediators (SecondViewMediator):\n\n\tpackage com.example\n\t{\n\t\timport org.robotlegs.mvcs.StarlingMediator;\n\n\t\tpublic class SecondViewMediator extends StarlingMediator\n\t\t{\n\t\t\tpublic function SecondViewMediator()\n\t\t\t{\n\t\t\t\tsuper();\n\t\t\t}\n\n\t\t\toverride public function onRegister():void\n\t\t\t{\n\t\t\t\ttrace(\"SecondViewMediator.onRegister()\");\n\t\t\t}\n\n\t\t\toverride public function onRemove():void\n\t\t\t{\n\t\t\t\ttrace(\"SecondViewMediator.onRemove()\");\n\t\t\t}\n\t\t}\n\t}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs9tpepper%2Frobotlegs-starling-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs9tpepper%2Frobotlegs-starling-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs9tpepper%2Frobotlegs-starling-plugin/lists"}