亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gameswf_string.cpp

?? 一個開源的嵌入式flash播放器 具體看文檔和例子就可
?? CPP
字號:
// gameswf_xml.h      -- Rob Savoye <rob@welcomehome.org> 2005// This source code has been donated to the Public Domain.  Do// whatever you want with it.// Implementation of ActionScript String class.#include "base/tu_config.h"#include "gameswf_string.h"#include "gameswf_log.h"#include "base/smart_ptr.h"namespace gameswf{	void string_method(const fn_call& fn, const tu_stringi& method_name, const tu_string& this_string)	// Executes the string method named by method_name.	{		if (method_name == "charCodeAt")		{			int	index = (int) fn.arg(0).to_number();			if (index >= 0 && index < this_string.utf8_length())			{				fn.result->set_double(this_string.utf8_char_at(index));				return;			}			fn.result->set_double(0);	// FIXME: according to docs, we're supposed to return "NaN"			return;		}		else if (method_name == "charAt")		{			int	index = (int) fn.arg(0).to_number();			if (index >= 0 && index < this_string.utf8_length())			{				tu_string result;				result += this_string.utf8_char_at(index);				fn.result->set_tu_string(result);			}			fn.result->set_string("");			return;		}		else if (method_name == "fromCharCode")		{			// Takes a variable number of args.  Each arg			// is a numeric character code.  Construct the			// string from the character codes.			tu_string result;			for (int i = 0; i < fn.nargs; i++)			{				uint32 c = (uint32) fn.arg(i).to_number();				result.append_wide_char(c);			}			fn.result->set_tu_string(result);			return;		}		else if (method_name == "toUpperCase")		{			fn.result->set_tu_string(this_string.utf8_to_upper());			return;		}		else if (method_name == "toLowerCase")		{			fn.result->set_tu_string(this_string.utf8_to_lower());			return;		}		else if (method_name == "indexOf")		{			if (fn.nargs < 1)			{				fn.result->set_double(-1);				return;			}			else			{				int	start_index = 0;				if (fn.nargs > 1)				{					start_index = (int) fn.arg(1).to_number();				}				const char*	str = this_string.c_str();				const char*	p = strstr(					str + start_index,	// FIXME: not UTF-8 correct!					fn.arg(0).to_string());				if (p == NULL)				{					fn.result->set_double(-1);					return;				}				fn.result->set_double(tu_string::utf8_char_count(str, p - str));				return;			}		}		else if (method_name == "substring")		{			// Pull a slice out of this_string.			int	start = 0;			int	utf8_len = this_string.utf8_length();			int	end = utf8_len;			if (fn.nargs >= 1)			{				start = (int) fn.arg(0).to_number();				start = iclamp(start, 0, utf8_len);			}			if (fn.nargs >= 2)			{				end = (int) fn.arg(1).to_number();				end = iclamp(end, 0, utf8_len);			}			if (end < start) swap(&start, &end);	// dumb, but that's what the docs say			assert(end >= start);			fn.result->set_tu_string(this_string.utf8_substring(start, end));			return;		}		// concat()		// lastIndexOf()		// length property		// slice()		// split()		// substr()		fn.result->set_undefined();	}	struct tu_string_as_object : public gameswf::as_object	{		tu_string m_string;	};    	void string_last_index_of(const fn_call& fn)	{		tu_string_as_object* this_string_ptr = (tu_string_as_object*) fn.this_ptr;		assert(this_string_ptr);		// tulrich: Ugh!  The caller has done hash.get() on		// the method name to find the method, and now we're		// going to construct a new method name and run it		// through a big if-else.		//		// TODO do this more efficiently.		string_method(fn, tu_stringi("lastIndexOf"), this_string_ptr->m_string);	}  	void string_from_char_code(const fn_call& fn)	{		tu_string_as_object* this_string_ptr = (tu_string_as_object*) fn.this_ptr;		assert(this_string_ptr);		// tulrich: Ugh!  The caller has done hash.get() on		// the method name to find the method, and now we're		// going to construct a new method name and run it		// through a big if-else.		//		// TODO do this more efficiently.		string_method(fn, tu_stringi("fromCharCode"), this_string_ptr->m_string);	}	void string_char_code_at(const fn_call& fn)	{		tu_string_as_object* this_string_ptr = (tu_string_as_object*) fn.this_ptr;		assert(this_string_ptr);		// tulrich: Ugh!  The caller has done hash.get() on		// the method name to find the method, and now we're		// going to construct a new method name and run it		// through a big if-else.		//		// TODO do this more efficiently.		string_method(fn, tu_stringi("charCodeAt"), this_string_ptr->m_string);	}	void string_to_string(const fn_call& fn)	{		tu_string_as_object* this_string_ptr = (tu_string_as_object*) fn.this_ptr;		assert(this_string_ptr);		fn.result->set_tu_string(this_string_ptr->m_string);	}	void string_ctor(const fn_call& fn)	{		smart_ptr<tu_string_as_object> str = new tu_string_as_object;		if (fn.nargs > 0)		{			str->m_string = fn.arg(0).to_tu_string();		}				// TODO fill in the rest		str->set_member("toString", &string_to_string);		str->set_member("fromCharCode", &string_from_char_code);		str->set_member("charCodeAt", &string_char_code_at);		str->set_member("lastIndexOf", &string_last_index_of);    		fn.result->set_as_object_interface(str.get_ptr());	}  } // namespace gameswf

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚男人的天堂| 色综合网色综合| 国产精品久久久久久一区二区三区| 在线免费av一区| 在线观看av不卡| 欧美性猛交xxxx黑人交| 色婷婷综合久久久久中文一区二区| www.一区二区| 91猫先生在线| 欧美日韩你懂得| 日韩一级完整毛片| 欧美成人一区二区三区片免费 | 国产精品理论片在线观看| 久久色在线视频| 中文字幕第一区第二区| 综合精品久久久| 亚洲第一综合色| 日本中文一区二区三区| 久久成人免费日本黄色| 豆国产96在线|亚洲| 99久久综合狠狠综合久久| 欧美亚洲丝袜传媒另类| 日韩女优毛片在线| 中文幕一区二区三区久久蜜桃| 中文字幕在线免费不卡| 亚洲电影视频在线| 另类小说欧美激情| 99久久精品免费看国产免费软件| 精品视频一区二区不卡| 26uuu欧美| 亚洲精品免费看| 九九在线精品视频| 91色在线porny| 欧美一区二区啪啪| 1024精品合集| 美女在线观看视频一区二区| 成人性色生活片| 欧美日韩免费观看一区三区| 久久精品一区二区| 日韩在线a电影| gogo大胆日本视频一区| 日韩欧美中文字幕制服| 亚洲欧美偷拍卡通变态| 久久91精品国产91久久小草 | 天天影视涩香欲综合网| 国产丶欧美丶日本不卡视频| 欧美日韩亚洲不卡| 国产欧美日韩精品一区| 日韩精品一卡二卡三卡四卡无卡| jlzzjlzz国产精品久久| 久久综合色8888| 天天综合网 天天综合色| av中文字幕不卡| 国产日产欧美一区二区视频| 日韩精品色哟哟| 91福利视频在线| 国产精品热久久久久夜色精品三区| 青青草国产精品亚洲专区无| 91丝袜呻吟高潮美腿白嫩在线观看| 精品久久99ma| 九色|91porny| 日韩欧美一级精品久久| 肉色丝袜一区二区| 欧美久久婷婷综合色| 亚洲自拍偷拍网站| 色94色欧美sute亚洲线路二| 国产精品初高中害羞小美女文| 黄色资源网久久资源365| 精品美女在线观看| 精品中文字幕一区二区小辣椒| 7777精品伊人久久久大香线蕉完整版| 亚洲欧美日韩一区二区| av资源站一区| 亚洲精品乱码久久久久久日本蜜臀| 99re亚洲国产精品| 亚洲女同女同女同女同女同69| 成人久久18免费网站麻豆| 国产欧美日本一区视频| 成人小视频免费观看| 亚洲欧洲日产国码二区| 91亚洲精品乱码久久久久久蜜桃| 中文字幕一区二区三区在线不卡| 不卡一区在线观看| 一区二区三区在线高清| 欧美日韩国产一二三| 丝瓜av网站精品一区二区| 日韩一区二区三区免费看| 麻豆精品在线观看| 国产欧美综合在线| 99精品国产热久久91蜜凸| 亚洲欧美视频在线观看视频| 精品视频色一区| 久久精品噜噜噜成人av农村| 久久亚洲精品国产精品紫薇| 国产成人精品影院| 亚洲乱码国产乱码精品精小说| 欧美日精品一区视频| 蜜臀精品久久久久久蜜臀| 国产精品国产精品国产专区不片| 成人国产一区二区三区精品| 亚洲综合清纯丝袜自拍| 欧美一区二区三区四区五区 | 亚洲在线一区二区三区| 欧美日韩综合在线| 精品一区免费av| 综合久久综合久久| 91精品久久久久久久91蜜桃 | 亚洲国产cao| 精品国产乱码久久久久久浪潮 | 国产精品久久久久久久岛一牛影视| 91亚洲精华国产精华精华液| 日韩高清不卡一区| 国产精品黄色在线观看| 6080午夜不卡| 91老师片黄在线观看| 麻豆91精品91久久久的内涵| 中文字幕中文在线不卡住| 在线成人午夜影院| 99精品1区2区| 国内精品伊人久久久久av影院| 亚洲日穴在线视频| 精品国产一区久久| 欧美男男青年gay1069videost| 国产凹凸在线观看一区二区| 日韩精品亚洲专区| 亚洲黄色录像片| 国产欧美日韩中文久久| 日韩欧美亚洲国产精品字幕久久久| 91美女视频网站| 成人激情免费视频| 国产精品乡下勾搭老头1| 琪琪一区二区三区| 一区二区三区欧美亚洲| 国产精品护士白丝一区av| 久久综合av免费| 欧美www视频| 日韩精品一区国产麻豆| 91精品国产综合久久久久久久久久| 色综合咪咪久久| 91麻豆国产精品久久| 成人午夜看片网址| 成人免费高清在线| 国产精品亚洲一区二区三区妖精| 看电影不卡的网站| 蜜桃av一区二区三区| 天天综合网天天综合色| 香蕉成人伊视频在线观看| 亚洲高清在线视频| 亚洲国产sm捆绑调教视频| 亚洲一区二区免费视频| 亚洲一区二区美女| 亚洲国产日产av| 丝袜脚交一区二区| 免费成人深夜小野草| 老司机精品视频线观看86| 美女久久久精品| 韩国一区二区视频| 国产成人精品在线看| a级高清视频欧美日韩| 一本到一区二区三区| 在线国产电影不卡| 欧美另类久久久品| 日韩欧美你懂的| 国产亚洲自拍一区| 国产精品看片你懂得 | 欧美人与z0zoxxxx视频| 欧美亚洲动漫精品| 777欧美精品| 精品第一国产综合精品aⅴ| 久久久国产精品麻豆| 国产精品福利一区二区| 亚洲国产精品人人做人人爽| 裸体在线国模精品偷拍| 成人毛片老司机大片| 欧美日韩成人激情| 26uuu亚洲综合色欧美| 亚洲欧洲另类国产综合| 亚洲电影中文字幕在线观看| 久久国产免费看| 成人av资源在线观看| 欧美日韩久久一区| 久久久亚洲精品一区二区三区| 国产精品精品国产色婷婷| 三级影片在线观看欧美日韩一区二区| 国内精品国产三级国产a久久| 91视频国产资源| 精品国产一区二区三区四区四| 国产清纯白嫩初高生在线观看91 | 久久综合九色综合97婷婷| 自拍偷拍亚洲综合| 日韩精品电影在线| 成人免费看黄yyy456| 欧美人牲a欧美精品| 中文字幕av一区二区三区免费看| 亚洲一级在线观看| 成人激情动漫在线观看| 日韩午夜激情视频| 国产欧美精品国产国产专区| 亚洲国产毛片aaaaa无费看| 国产一区二区影院|