Emulator Ruffle Flash Player di iOS
Bekerja dalam proses.
Lihat Ruffle.rs untuk pengantar umum.
Pilihan desain
Orang normal mungkin telah membungkus karat di beberapa extern "C" fn s, dan kemudian menggunakan swiftUi, atau setidaknya objektif-C untuk cangkang UI. Saya mungkin akan merekomendasikan itu untuk sebagian besar kasus penggunaan.
Namun, saya mengembangkan objc2 , dan saya ingin meningkatkan antarmuka pengguna itu, jadi saya memutuskan untuk menjadi sedikit tidak berorotis, dan melakukan semuanya dalam karat.
Pengujian
Jalankan pemain inti di Catalyst Mac dengan:
cargo bundle --target=aarch64-apple-ios-macabi --bin run_swf && ./target/aarch64-apple-ios-macabi/debug/bundle/ios/Ruffle.app/run_swf
Ui
Mirip dengan https://getutm.app/, kita harus memiliki:
- Perpustakaan "Terpasang" SWFS/Bundel/Tautan Tersimpan, dapat diedit.
- Saat memilih SWF, bilah navigasi di atas menunjukkan berbagai opsi
- Membuka keyboard (mungkin?)
- Menu konteks "Mainkan, mundur, maju, kembali, dll."?
- Izinkan perubahan antar skala
- Tombol kembali untuk kembali ke perpustakaan
- "Tambahkan" dan "Edit" adalah dua aliran yang berbeda, dan harus menampilkan dua UI yang berbeda
- "Tambahkan" tidak harus menunjukkan semua pengaturan tambahan; Ini hanya tentang mendapatkan file. Pengguna dapat mengeditnya nanti.
Pengaturan Item Perpustakaan
Pengaturan disimpan per bundel ruffle.
-
PlayerOptions- https://github.com/ruffle-rs/ruffle/blob/master/frontend-utils/src/bundle/readme.md#player
- Input:
- Dapat dikonfigurasi
- Geser untuk tombol panah?
- https://openemu.org/ Apakah cukup baik, setara dengan iOS?
- Nama khusus?
- Gambar khusus?
Ide Penyimpanan
Sasaran:
- Simpan bundel ruffle.
- Simpan Pengaturan Pengguna.
- Simpan Data SWF itu sendiri mungkin telah disimpan (toko nilai kunci).
- Sinkronisasi ke iCloud.
- Bersikaplah mundur dan ke depan yang kompatibel dengan versi baru dari aplikasi Ruffle.
- Ditegakkan untuk bundel ruffle.
Jadi, kami ingin mendukung beberapa mode peluncuran:
- Impor bundel secara permanen.
- Buka bundel ruffle tanpa mengimpor.
- Apa yang terjadi ketika bundel telah pindah relatif ke pengaturan pengguna?
Bundel, ketika diimpor, tidak dikemas dari zip, berganti nama menjadi bundle.ruf dan pindah ke library/$random_uuid/ , untuk tidak bertentangan dengan bundel lain dengan nama yang sama. SWF yang diimpor dikonversi ke bundel ruffle dengan name = "file_stem", url = "file:///file_stem.swf" . File disimpan di disk di direktori aplikasi. Pengaturan Pengguna disimpan di settings.toml di sebelah bundle.ruf . Data aplikasi di app_data/ .
Aturan untuk sinkronisasi adalah "kemenangan terbaru". Ini harus baik -baik saja jika misalnya pengguna telah memodifikasi pengaturannya pada dua perangkat yang berbeda, meskipun mungkin memerlukan logika yang berbeda untuk data aplikasi.
Perhatikan bahwa kami dapat menggunakan model data inti, tetapi itu sulit dan tidak akan benar -benar membantu kami ketika pengaturan kami sebagian besar ditentukan oleh bundel ruffle.
Terminologi
Apa yang kita sebut SWF? "Permainan"? "Film"? "SWF"? "Flash Animation"?
Rencana
- Siapkan Ruffle UI di
UIView - Kawat beberapa cara untuk memulainya menggunakan SWF di perangkat lokal
Todo
- Atur
idleTimerDisabled pada waktu yang tepat - Gunakan putih untuk label, oranye untuk tombol
- Tambahkan tombol Pengaturan di Item Perpustakaan
Pilihan
- Secara sengaja menggunakan
public.app-category.games untuk mendapatkan kinerja yang lebih baik ("Mode Game" di MacOS).- Ini belum tentu pilihan yang tepat untuk Ruffle, tapi ini yang paling dekat.
- Tidak masuk akal untuk memiliki pengaturan root seperti di versi desktop
- Tidak ada tab tab, tidak benar -benar diinginkan, karena kita biasanya ingin UI SWF mengisi sebagian besar layar
- Meskipun jika kami memutuskan untuk menambahkan cara mudah untuk mengunduh dari sumber "tepercaya", kami dapat menambahkan bilah tab untuk itu
- Bilah navigasi berguna
- Untuk menampilkan beberapa pengaturan untuk SWF saat ini
- Untuk kembali ke perpustakaan
- Sembunyikan saat memasuki layar penuh?