avm2: Added flash.net.URLVariables

This commit is contained in:
dowgird 2022-09-06 21:50:41 +02:00 committed by Aaron Hill
parent 53f42e0bec
commit 5ac4f4358d
6 changed files with 63 additions and 0 deletions

View File

@ -0,0 +1,33 @@
package flash.net {
import flash.utils.escapeMultiByte;
public dynamic class URLVariables {
// TODO: construct from String
// TODO: implement decode()
public function URLVariables() {}
public function toString(): String {
var acc : String = ""
var sep :String = ""
for (p in this) {
var pe : String = escapeMultiByte(p);
var val = this[p];
if (val is Array) {
for (i in val) {
acc += sep;
acc += pe;
acc += "=";
acc += escapeMultiByte(val[i]);
sep = "&";
}
continue;
}
acc += sep;
acc += pe;
acc += "=";
acc += escapeMultiByte(val);
sep="&";
}
return acc;
}
}
}

View File

@ -167,6 +167,7 @@ include "flash/net/URLLoaderDataFormat.as"
include "flash/net/URLRequest.as"
include "flash/net/URLRequestHeader.as"
include "flash/net/URLRequestMethod.as"
include "flash/net/URLVariables.as"
include "flash/printing/PrintJobOrientation.as"
include "flash/security/CertificateStatus.as"

View File

@ -537,6 +537,7 @@ swf_tests! {
(as3_uint_tostring, "avm2/uint_tostring", 1),
(as3_unchecked_function, "avm2/unchecked_function", 1),
(as3_url_loader, "avm2/url_loader", 1),
(as3_url_vars, "avm2/url_vars", 1),
(as3_urshift, "avm2/urshift", 1),
(as3_vector_coercion, "avm2/vector_coercion", 1),
(as3_vector_concat, "avm2/vector_concat", 1),

View File

@ -0,0 +1,25 @@
package {
import flash.display.MovieClip;
public class Test extends MovieClip {
public function Test() {
}
}
}
import flash.net.URLVariables;
var variables:URLVariables = new URLVariables();
variables.foo = "a";
trace(variables);
variables = new URLVariables();
variables.foo = [0,1,2];
trace(variables);
variables = new URLVariables();
variables["😭"] = [0,"😭",2];
trace(variables);

View File

@ -0,0 +1,3 @@
foo=a
foo=0&foo=1&foo=2
%F0%9F%98%AD=0&%F0%9F%98%AD=%F0%9F%98%AD&%F0%9F%98%AD=2

Binary file not shown.