as_s_function::as_s_function(player* player,
		const action_buffer* ab, int start, const array<with_stack_entry>& with_stack) :
		as_function(player),
		m_with_stack(with_stack),
		m_start_pc(start),
		m_length(0),
		m_is_function2(false),
		m_local_register_count(0),
		m_function2_flags(0)
	{
		// Flash stores a body(functions) of a class in _global,
		// action_buffer is in movie_def, therefore when we load another _root
		// action_buffer will be deleted and _global.MyClass will keep
		// the pointer to the removed object(action_buffer).
		// Therefore we have updated action_buffer* ==> action_buffer in as_s_function
		assert(ab);
		m_action_buffer = *ab;

		m_this_ptr = this;

		// any function MUST have prototype
		builtin_member("prototype", new as_object(player));

		builtin_member("call", as_s_function_call);
	}
示例#2
0
	as_mouse::as_mouse(player* player) :
		as_object(player)
	{
		builtin_member("hide", as_mouse_hide);
		builtin_member("show", as_mouse_show);
		builtin_member("addListener", as_mouse_add_listener);
		builtin_member("removeListener", as_mouse_remove_listener);
	}
示例#3
0
	as_point::as_point(player* player, float x, float y) :
		as_object(player),
	   m_point( x, y )
	{
		builtin_member("add", as_point_add);
		builtin_member("subtract", as_point_subtract);
		builtin_member("normalize", as_point_normalize);
	}
示例#4
0
	as_mcloader::as_mcloader(player* player) :
		as_object(player)
	{
		builtin_member("addListener", as_mcloader_addlistener);
		builtin_member("removeListener", as_mcloader_removelistener);
		builtin_member("loadClip", as_mcloader_loadclip);
		builtin_member("unloadClip", as_mcloader_unloadclip);
		builtin_member("getProgress", as_mcloader_getprogress);
	}
示例#5
0
	as_xmlsock::as_xmlsock(player* player) :
		as_object(player),
		m_iface(NULL),
		m_ns(NULL)
	{
		builtin_member("connect", as_xmlsock_connect);
		builtin_member("close", as_xmlsock_close);
		builtin_member("send", as_xmlsock_send);
		m_iface = new net_interface_tcp();
	}
	as_c_function::as_c_function(player* player, as_c_function_ptr func) :
		as_function(player),
		m_func(func)
	{
		// any function MUST have prototype
		builtin_member("prototype", new as_object(player));
	}
示例#7
0
	sqlite_table::sqlite_table(player* player) :
		sql_table(player),
		m_index(0)
	{
		builtin_member("size", size_method);
		builtin_member("next", next_method);
		builtin_member("prev", prev_method);
		builtin_member("first", first_method);
		builtin_member("fields", field_count_method);
		builtin_member("goto", goto_record_method);
		builtin_member("title", get_title_method);
		builtin_member("toString", to_string_method);
		builtin_member("getRecNo", to_get_recno_method);
	}
示例#8
0
	as_array::as_array(player* player) :
		as_object(player)
	{
		//			this->set_member("join", &array_not_impl);
		//			this->set_member("concat", &array_not_impl);
		//			this->set_member("slice", &array_not_impl);
		//			this->set_member("unshift", &array_not_impl);
		//			this->set_member("shift", &array_not_impl);
		//			this->set_member("splice", &array_not_impl);
		//			this->set_member("sort", &array_not_impl);
		//			this->set_member("sortOn", &array_not_impl);
		//			this->set_member("reverse", &array_not_impl);
		builtin_member("toString", as_array_tostring);
		builtin_member("push", as_array_push);
		builtin_member("pop", as_array_pop);
		builtin_member("length", as_value(as_array_length, NULL));
		set_ctor(as_global_array_ctor);
	}
示例#9
0
文件: file.cpp 项目: CneoC/shinzui
file::file(player* player, const tu_string& path, const tu_string& mode) :
    as_object(player),
    m_file(NULL)
{
    // is path relative ?
    tu_string file_name = get_player()->get_workdir();
    if (strstr(path.c_str(), ":") || *path.c_str() == '/')
    {
        file_name = "";
    }
    file_name += path;

    m_file = new tu_file(file_name.c_str(), mode.c_str());

    // methods
    builtin_member("read", file_read);
    builtin_member("write", file_write);
    builtin_member("eof", as_value(file_get_eof, as_value()));	// readonly property
    builtin_member("error", as_value(file_get_error, as_value()));	// readonly property

}
示例#10
0
	as_loadvars::as_loadvars(player* player) :
		as_object(player)
	{
		builtin_member( "addRequestHeader" , as_loadvars_addrequestheader );
		builtin_member( "decode" , as_loadvars_decode );
		builtin_member( "getBytesLoaded" , as_loadvars_getbytesloaded );
		builtin_member( "getBytesTotal" , as_loadvars_getbytestotal );
		builtin_member( "load" , as_loadvars_load );
		builtin_member( "send" , as_loadvars_send );
		builtin_member( "sendAndLoad" , as_loadvars_sendandload );
		builtin_member( "toString" , as_loadvars_tostring );

		// default values
		m_headers.set("Content-Type", "application/x-www-form-urlencoded");
		m_headers.set("Cache-Control", "no-cache");
		m_headers.set("User-Agent", "gameswf");
	}
示例#11
0
	mydb::mydb(player* player) :
		sql_db(player),
		m_trace(false),
		m_db(NULL)
	{
		// methods
		builtin_member("connect", mydb_connect);
		builtin_member("disconnect", mydb_disconnect);
		builtin_member("open", mydb_open);
		builtin_member("run", mydb_run);
		builtin_member("commit", mydb_commit);
		builtin_member("auto_commit", as_value(as_value(), mydb_autocommit_setter));
		builtin_member("trace", as_value(as_value(), mydb_trace_setter));
	}
示例#12
0
as_3_function::as_3_function ( abc_def *abc, int method, player *player ) :
    as_function ( player ),
    m_abc ( abc ),
    m_return_type ( -1 ),
    m_name ( -1 ),
    m_flags ( 0 ),
    m_method ( method ),
    m_max_stack ( 0 ),
    m_local_count ( 0 ),
    m_init_scope_depth ( 0 ),
    m_max_scope_depth ( 0 )
{
    m_this_ptr = this;
    // any function MUST have prototype
    builtin_member ( "prototype", new as_object ( player ) );
}
示例#13
0
	as_sharedobject::as_sharedobject( player * player ) : as_object( player )
	{
		builtin_member( "getLocal", &as_sharedobject_getlocal );
		builtin_member( "flush", &as_sharedobject_flush );
	}
示例#14
0
	// Date([yearOrTimevalue:Number], [month:Number], [date:Number],
	// [hour:Number], [minute:Number], [second:Number], [millisecond:Number])
	as_date::as_date(const fn_call& fn) :
		as_object(fn.get_player())
	{
		// reset if there are args
		if (fn.nargs > 0)
		{
			int arg = fn.arg(0).to_int();
			set(FULLYEAR, arg);
			if (fn.nargs > 1)
			{
				arg = fn.arg(1).to_int();
				set(MON, arg);
				if (fn.nargs > 2)
				{
					arg = fn.arg(2).to_int();
					set(MDAY, arg);
					if (fn.nargs > 3)
					{
						arg = fn.arg(3).to_int();
						set(HOUR, arg);
						if (fn.nargs > 4)
						{
							arg = fn.arg(4).to_int();
							set(MIN, arg);
							if (fn.nargs > 5)
							{
								arg = fn.arg(5).to_int();
								set(SEC, arg);
							}
						}
					}
				}
			}
		}

		builtin_member("getTime", as_date_gettime);
		builtin_member("setTime", as_date_settime);

		builtin_member("getYear", as_date_getyear);
		builtin_member("setYear", as_date_setyear);

		builtin_member("getMonth", as_date_getmonth);
		builtin_member("setMonth", as_date_setmonth);

		builtin_member("getDate", as_date_getdate);
		builtin_member("setDate", as_date_setdate);

		builtin_member("getDay", as_date_getday);
		builtin_member("setDay", as_date_setday);

		builtin_member("getFullYear", as_date_getfullyear);
		builtin_member("setFullYear", as_date_setfullyear);

		builtin_member("getHours", as_date_gethours);
		builtin_member("setHours", as_date_sethours);

		builtin_member("getMilliseconds", as_date_getmilli);
		builtin_member("setMilliseconds", as_date_setmilli);

		builtin_member("getMinutes", as_date_getminutes);
		builtin_member("setMinutes", as_date_setminutes);

		builtin_member("getSeconds", as_date_getseconds);
		builtin_member("setSeconds", as_date_setseconds);

	}
示例#15
0
	void as_object::set_ctor(const as_value& val)
	{
		builtin_member(s_constructor, val);
	}