Der Ruffle Flash Player Emulator auf iOS
In Arbeit arbeiten.
Siehe Ruffle.rs für eine allgemeine Einführung.
Designoptionen
Eine normale Person hat den Rost möglicherweise in ein extern "C" fn s gewickelt und dann Swiftui oder zumindest für die UI-Schale zumindest Objektiv-C verwendet. Ich würde das wahrscheinlich für die meisten Anwendungsfälle empfehlen.
Ich entwickle jedoch objc2 und möchte die Benutzeroberfläche davon verbessern. Deshalb habe ich mich entschlossen, ein bisschen unortodox zu sein und alles in Rost zu tun.
Testen
Führen Sie den Core -Player auf dem Mac -Katalysator mit:
cargo bundle --target=aarch64-apple-ios-macabi --bin run_swf && ./target/aarch64-apple-ios-macabi/debug/bundle/ios/Ruffle.app/run_swf
Ui
Ähnlich wie bei https://getutm.app/ sollten wir:
- Eine Bibliothek mit "installierten" SWFS/Bündeln/gespeicherten Links, bearbeitet.
- Bei der Auswahl eines SWF zeigt die Navigationsleiste oben verschiedene Optionen
- Tastatur öffnen (vielleicht?)
- Kontextmenü "Spielen, Rückspulen, Vorwärts, Zurück usw."?
- Wechseln zwischen Skala erlauben
- Zurück -Taste, um in die Bibliothek zurückzukehren
- "Hinzufügen" und "Bearbeiten" sind zwei verschiedene Ströme und sollten zwei verschiedene UIs anzeigen
- "Add" muss nicht alle zusätzlichen Einstellungen anzeigen. Es geht nur darum, die Datei zu bekommen. Der Benutzer kann es später bearbeiten.
Einstellungen für Bibliothekselemente
Einstellungen werden pro Rüschenbündel gespeichert.
-
PlayerOptions- https://github.com/ruffle-rs/blob/master/frontend-utils/src/bundle/readme.md#player
- Eingänge:
- Konfigurierbar
- Für Pfeiltasten wischen?
- https://openemu.org/ ist es ziemlich gut, gleichwertig für iOS?
- Benutzerdefinierter Name?
- Benutzerdefinierte Bild?
Speicherideen
Ziele:
- Lagern Sie ein Rüschenbündel.
- Speichern Sie die Benutzereinstellungen.
- Speichern Sie Daten, die der SWF selbst gespeichert hat (den Schlüsselwertgeschäft).
- Synchronisieren mit iCloud.
- Seien Sie rückwärts und leiten Sie mit neuen Versionen der Ruffle -App kompatibel.
- Für Rüschenbündel bestätigt.
Wir möchten also mehrere Startmodi unterstützen:
- Bündel dauerhaft importieren.
- Öffnen Sie ein Rüschenbündel ohne Import.
- Was passiert, wenn sich ein Bundle in Bezug auf die Benutzereinstellungen bewegt hat?
Bündel werden beim Import von ZIP auspackt, in bundle.ruf umbenannt.Ruf umbenannt und in die library/$random_uuid/ um nicht mit anderen Bündeln mit demselben Namen in Konflikt gebracht. Importierte SWFs werden mit name = "file_stem", url = "file:///file_stem.swf" in ein Ruffle -Bundle konvertiert. Die Dateien werden im Verzeichnis der Anwendung auf der Festplatte gespeichert. Benutzereinstellungen werden in settings.toml neben bundle.ruf gespeichert. Anwendungsdaten in app_data/ .
Regel für die Synchronisierung ist "neueste Siege". Dies sollte in Ordnung sein, wenn z. B. der Benutzer seine Einstellungen auf zwei verschiedenen Geräten geändert hat. Möglicherweise ist eine andere Logik für Anwendungsdaten erforderlich.
Beachten Sie, dass wir ein Kerndatenmodell hätten verwenden können , aber das ist schwierig und wird uns nicht wirklich helfen, wenn unsere Einstellungen hauptsächlich durch das Rüschenbündel definiert werden.
Terminologie
Wie nennen wir einen SWF? "Spiel"? "Film"? "SWF"? "Flash Animation"?
Planen
- Holen Sie sich die Rüschen -Benutzeroberfläche in einem
UIView zum Laufen - Verdrahten Sie eine Möglichkeit, es mit einem SWF auf dem lokalen Gerät zu starten
Todo
- Legen Sie
idleTimerDisabled zum richtigen Zeitpunkt fest - Verwenden Sie Weiß für Etiketten, Orange für Knöpfe
- Fügen Sie die Einstellungsschaltfläche im Bibliothekselement hinzu
Auswahl
- Verwenden Sie absichtlich
public.app-category.games , um eine bessere Leistung zu erzielen ("Spielmodus" auf macOS).- Dies ist nicht unbedingt die richtige Wahl für Rüschen, aber es ist das nächste.
- Es ist nicht sinnvoll, Root -Einstellungen wie in der Desktop -Version zu haben
- Keine Tab -Bar, nicht wirklich gewünscht, da wir im Allgemeinen möchten, dass die Benutzeroberfläche des SWF den größten Teil des Bildschirms füllt
- Wenn wir uns jedoch entscheiden, eine einfache Möglichkeit zum Herunterladen von "vertrauenswürdigen" Quellen hinzuzufügen, können wir dafür eine Registerkartenleiste hinzufügen
- Eine Navigationsleiste ist jedoch nützlich
- Zum Anzeigen einiger Einstellungen für den aktuellen SWF anzeigen
- Zurück in die Bibliothek gehen
- Bilden Sie beim Eingeben von Vollbildmaterial aus?