<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ed253</title>
    <description>The latest articles on DEV Community by ed253 (@ed253).</description>
    <link>https://dev.to/ed253</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3389344%2F61806d36-c308-4025-b3d3-eba1b5b9adc5.png</url>
      <title>DEV Community: ed253</title>
      <link>https://dev.to/ed253</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ed253"/>
    <language>en</language>
    <item>
      <title>Play Flash games on mobile with Ruffle Virtual Keyboard</title>
      <dc:creator>ed253</dc:creator>
      <pubDate>Sat, 26 Jul 2025 06:05:16 +0000</pubDate>
      <link>https://dev.to/ed253/play-flash-games-on-mobile-with-ruffle-virtual-keyboard-a25</link>
      <guid>https://dev.to/ed253/play-flash-games-on-mobile-with-ruffle-virtual-keyboard-a25</guid>
      <description>&lt;p&gt;Play Ruffle (Flash) games on mobile with the new Ruffle Virtual Keyboard userscript!&lt;/p&gt;

&lt;p&gt;The userscript adds an onscreen virtual keyboard to Ruffle games. Tap the arrow key and spacebar buttons to play Ruffle games on mobile:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yw1ajcfs5s1z34tdk69.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yw1ajcfs5s1z34tdk69.png" alt="Thumbnail" width="380" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  How it works
&lt;/h1&gt;

&lt;p&gt;The userscript adds HTML buttons to the screen to represent arrow keys and spacebar. When pressed, the Ruffle container is focused, and then a dispatchEvent with a keyboardEvent is sent to the Ruffle container:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;document.querySelector("ruffle-embed").focus();
document.querySelector("ruffle-embed").dispatchEvent(new KeyboardEvent("keydown", { key: " ", code: "Space", keyCode: 32, which: 32, bubbles: true }));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The virtual keyboardEvent is processed in the same way as a keypress from a physical keyboard&lt;/p&gt;

&lt;p&gt;Now you can play your favorite Flash games on mobile!&lt;/p&gt;

&lt;h1&gt;
  
  
  Repo
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/ed253/ruffle-virtual-keyboard/" rel="noopener noreferrer"&gt;https://github.com/ed253/ruffle-virtual-keyboard/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Install
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Install a mobile browser that supports addons: &lt;a href="https://play.google.com/store/apps/details?id=org.mozilla.firefox&amp;amp;hl=en-US" rel="noopener noreferrer"&gt;https://play.google.com/store/apps/details?id=org.mozilla.firefox&amp;amp;hl=en-US&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install Ruffle addon: &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/ruffle_rs/" rel="noopener noreferrer"&gt;https://addons.mozilla.org/en-US/firefox/addon/ruffle_rs/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install Tampermonkey addon: &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/" rel="noopener noreferrer"&gt;https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install Ruffle Virtual Keyboard userscript: &lt;a href="https://greasyfork.org/en/scripts/543622-ruffle-virtual-keyboard-for-mobile" rel="noopener noreferrer"&gt;https://greasyfork.org/en/scripts/543622-ruffle-virtual-keyboard-for-mobile&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Enable/disable the userscript to toggle the keyboard&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Extend
&lt;/h1&gt;

&lt;p&gt;You can add new keys and change the color, size and position of the keyboard by editing ruffle-virtual-keyboard.js or opening the userscript in Tampermonkey&lt;/p&gt;

&lt;h1&gt;
  
  
  TODO
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Make the keyboard draggable and resizable&lt;/li&gt;
&lt;li&gt;Support different keyboard layouts and gamepads&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tips
&lt;/h1&gt;

&lt;p&gt;Monero (XMR): 87vvXn5XgwHGP8YFxGDNA9LVZbAYESXpRaqNn3LR6dYgHzqJhEemN5eLXoNciR8BKUAZ32Ygc8z9UPxqmbQLZxmU4mTa81V&lt;/p&gt;

&lt;p&gt;About Monero: &lt;a href="https://getmonero.org" rel="noopener noreferrer"&gt;https://getmonero.org&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  License
&lt;/h1&gt;

&lt;p&gt;MIT&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>flash</category>
      <category>games</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
