avm2: Stub GameInput.getDeviceAt and GameInputControl (#15409)

This commit is contained in:
Aaron Hill 2024-03-09 17:01:10 -05:00 committed by GitHub
parent 81604dd21c
commit 7752c32c8e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 48 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package flash.ui { package flash.ui {
import flash.events.EventDispatcher; import flash.events.EventDispatcher;
[API("688")]
public final class GameInput extends EventDispatcher { public final class GameInput extends EventDispatcher {
public static function get isSupported():Boolean { public static function get isSupported():Boolean {
return false; return false;
@ -9,5 +10,9 @@ package flash.ui {
public static function get numDevices():int { public static function get numDevices():int {
return 0; return 0;
} }
public static function getDeviceAt(index:int):GameInputDevice {
throw new RangeError("Error #1506: The specified range is invalid.", 1506);
}
} }
} }

View File

@ -0,0 +1,8 @@
package flash.ui {
[API("688")]
public dynamic class GameInputControl {
public function GameInputControl() {
throw new ArgumentError("Error #2012: GameInputControl$ class cannot be instantiated.", 2012)
}
}
}

View File

@ -388,6 +388,7 @@ include "flash/ui/ContextMenuBuiltInItems.as"
include "flash/ui/ContextMenuClipboardItems.as" include "flash/ui/ContextMenuClipboardItems.as"
include "flash/ui/ContextMenuItem.as" include "flash/ui/ContextMenuItem.as"
include "flash/ui/GameInput.as" include "flash/ui/GameInput.as"
include "flash/ui/GameInputControl.as"
include "flash/ui/GameInputDevice.as" include "flash/ui/GameInputDevice.as"
include "flash/ui/Keyboard.as" include "flash/ui/Keyboard.as"
include "flash/ui/KeyboardType.as" include "flash/ui/KeyboardType.as"

29
tests/tests/swfs/avm2/game_input/Test.as vendored Executable file
View File

@ -0,0 +1,29 @@
package {
import flash.display.MovieClip;
import flash.ui.GameInput;
import flash.ui.GameInputControl;
public class Test extends MovieClip {
public function Test() {
var gameInput = new GameInput();
trace("gameInput: " + gameInput);
trace("GameInput.numDevices: " + GameInput.numDevices);
try {
GameInput.getDeviceAt(0);
} catch (e) {
trace("Caught error: " + e);
}
try {
new GameInputControl();
} catch (e) {
trace("Caught error: " + e);
}
}
}
}

View File

@ -0,0 +1,4 @@
gameInput: [object GameInput]
GameInput.numDevices: 0
Caught error: RangeError: Error #1506: The specified range is invalid.
Caught error: ArgumentError: Error #2012: GameInputControl$ class cannot be instantiated.

BIN
tests/tests/swfs/avm2/game_input/test.fla vendored Executable file

Binary file not shown.

BIN
tests/tests/swfs/avm2/game_input/test.swf vendored Executable file

Binary file not shown.

View File

@ -0,0 +1 @@
num_ticks = 1