Add `flash.display.Sprite` because Flash Builder tests demand it.
This commit is contained in:
parent
4ab9a46515
commit
b2f5307213
|
@ -9,6 +9,7 @@ use gc_arena::{Collect, MutationContext};
|
||||||
mod function;
|
mod function;
|
||||||
mod movieclip;
|
mod movieclip;
|
||||||
mod object;
|
mod object;
|
||||||
|
mod sprite;
|
||||||
|
|
||||||
/// This structure represents all system builtins' prototypes.
|
/// This structure represents all system builtins' prototypes.
|
||||||
#[derive(Clone, Collect)]
|
#[derive(Clone, Collect)]
|
||||||
|
@ -29,7 +30,8 @@ pub fn construct_global_scope<'gc>(
|
||||||
|
|
||||||
let object_proto = ScriptObject::bare_object(mc);
|
let object_proto = ScriptObject::bare_object(mc);
|
||||||
let function_proto = function::create_proto(mc, object_proto);
|
let function_proto = function::create_proto(mc, object_proto);
|
||||||
let movieclip_proto = movieclip::create_proto(mc, object_proto, function_proto);
|
let sprite_proto = sprite::create_proto(mc, object_proto, function_proto);
|
||||||
|
let movieclip_proto = movieclip::create_proto(mc, sprite_proto, function_proto);
|
||||||
|
|
||||||
object::fill_proto(mc, object_proto, function_proto);
|
object::fill_proto(mc, object_proto, function_proto);
|
||||||
|
|
||||||
|
@ -66,6 +68,20 @@ pub fn construct_global_scope<'gc>(
|
||||||
.into(),
|
.into(),
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
global_scope
|
||||||
|
.install_dynamic_property(
|
||||||
|
mc,
|
||||||
|
QName::new(Namespace::package("flash.display"), "Sprite"),
|
||||||
|
FunctionObject::from_builtin_constr(
|
||||||
|
mc,
|
||||||
|
sprite::constructor,
|
||||||
|
sprite_proto,
|
||||||
|
function_proto,
|
||||||
|
)
|
||||||
|
.unwrap()
|
||||||
|
.into(),
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
global_scope
|
global_scope
|
||||||
.install_dynamic_property(
|
.install_dynamic_property(
|
||||||
mc,
|
mc,
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
//! `flash.display.Sprite` builtin/prototype
|
||||||
|
|
||||||
|
use crate::avm2::object::Object;
|
||||||
|
use crate::avm2::return_value::ReturnValue;
|
||||||
|
use crate::avm2::script_object::ScriptObject;
|
||||||
|
use crate::avm2::value::Value;
|
||||||
|
use crate::avm2::{Avm2, Error};
|
||||||
|
use crate::context::UpdateContext;
|
||||||
|
use gc_arena::MutationContext;
|
||||||
|
|
||||||
|
/// Implements `flash.display.Sprite`'s constructor.
|
||||||
|
pub fn constructor<'gc>(
|
||||||
|
_avm: &mut Avm2<'gc>,
|
||||||
|
_action_context: &mut UpdateContext<'_, 'gc, '_>,
|
||||||
|
_this: Object<'gc>,
|
||||||
|
_args: &[Value<'gc>],
|
||||||
|
) -> Result<ReturnValue<'gc>, Error> {
|
||||||
|
Ok(Value::Undefined.into())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Construct `Sprite.prototype`.
|
||||||
|
pub fn create_proto<'gc>(
|
||||||
|
mc: MutationContext<'gc, '_>,
|
||||||
|
super_proto: Object<'gc>,
|
||||||
|
_fn_proto: Object<'gc>,
|
||||||
|
) -> Object<'gc> {
|
||||||
|
// TODO: Use `StageObject` here.
|
||||||
|
let sprite_proto = ScriptObject::object(mc, super_proto);
|
||||||
|
|
||||||
|
sprite_proto
|
||||||
|
}
|
Loading…
Reference in New Issue