Add stub impl of `flash.display.MovieClip`.
This commit is contained in:
parent
ebcfee4676
commit
d42b16f021
|
@ -7,6 +7,7 @@ use crate::avm2::script_object::ScriptObject;
|
|||
use gc_arena::{Collect, MutationContext};
|
||||
|
||||
mod function;
|
||||
mod movieclip;
|
||||
mod object;
|
||||
|
||||
/// This structure represents all system builtins' prototypes.
|
||||
|
@ -28,6 +29,7 @@ pub fn construct_global_scope<'gc>(
|
|||
|
||||
let object_proto = ScriptObject::bare_object(mc);
|
||||
let function_proto = function::create_proto(mc, object_proto);
|
||||
let movieclip_proto = movieclip::create_proto(mc, object_proto, function_proto);
|
||||
|
||||
object::fill_proto(mc, object_proto, function_proto);
|
||||
|
||||
|
@ -64,6 +66,20 @@ pub fn construct_global_scope<'gc>(
|
|||
.into(),
|
||||
)
|
||||
.unwrap();
|
||||
global_scope
|
||||
.install_dynamic_property(
|
||||
mc,
|
||||
QName::new(Namespace::package("flash.display"), "MovieClip"),
|
||||
FunctionObject::from_builtin_constr(
|
||||
mc,
|
||||
movieclip::constructor,
|
||||
movieclip_proto,
|
||||
function_proto,
|
||||
)
|
||||
.unwrap()
|
||||
.into(),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
(global_scope, system_prototypes)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
//! `flash.display.MovieClip` 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.MovieClip`'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 `MovieClip.prototype`.
|
||||
pub fn create_proto<'gc>(
|
||||
mc: MutationContext<'gc, '_>,
|
||||
super_proto: Object<'gc>,
|
||||
_fn_proto: Object<'gc>,
|
||||
) -> Object<'gc> {
|
||||
// TODO: Use `StageObject` here.
|
||||
let movieclip_proto = ScriptObject::object(mc, super_proto);
|
||||
|
||||
movieclip_proto
|
||||
}
|
|
@ -58,6 +58,10 @@ impl Namespace {
|
|||
pub fn public_namespace() -> Self {
|
||||
Namespace::Package("".to_string())
|
||||
}
|
||||
|
||||
pub fn package(package_name: &str) -> Self {
|
||||
Namespace::Package(package_name.to_string())
|
||||
}
|
||||
}
|
||||
|
||||
/// A `QName`, likely "qualified name", consists of a namespace and name string.
|
||||
|
|
Loading…
Reference in New Issue