Exemplo n.º 1
0
Variable AVM::call(AVM &avm) {
	Variable name = avm.getRegister(1);
	if (!name.isString())
		throw Common::Exception("AVM::registerClass(): name is not a string");

	info("TODO: ExternalInterface.call(%s,...)", name.asString().c_str());

	return Variable();
}
Exemplo n.º 2
0
Variable AVM::gotoAndPlay(AVM &avm) {
	Variable frame = avm.getRegister(1);

	if (!frame.isNumber() && !frame.isString())
		throw Common::Exception("AVM::gotoAndPlay(): parameter is neither a string nor a number");

	info("TODO: gotoAndPlay(%s)", frame.asString().c_str());

	return Variable();
}
Exemplo n.º 3
0
Variable Array::getMember(const Variable &id) {
	if (id.isNumber()) {
		std::list<Variable>::iterator iter = _values.begin();
		std::advance(iter, static_cast<size_t>(id.asNumber()));
		return *iter;
	}

	if (id.isString() && id.asString() == "length")
		return Variable((unsigned long)_values.size());

	return Object::getMember(id);
}
Exemplo n.º 4
0
Variable AVM::registerClass(AVM &avm) {
	Variable name = avm.getRegister(1);
	Variable object = avm.getRegister(2);

	if (!name.isString())
		throw Common::Exception("AVM::registerClass(): name is not a string");
	if (!object.isObject())
		throw Common::Exception("AVM::registerClass(): value is not an object");

	if (_registerClass)
		_registerClass(name.asString(), object.asObject());

	return Variable();
}