void Start() { snapParams = ScriptableObject.CreateInstance <SnapParams>(); snapParams.snappableTransform = this.transform; snapParams.xFlip = baseBlock.position.x == transform.position.x; snapParams.yFlip = baseBlock.position.y == transform.position.y; }
public virtual void ProcessRequest(HttpContext context) { string htmltext = string.Empty; string guid = string.Empty; int ww; int wh; int x; int y; int cw; int ch; htmltext = context.Request["HTML"]; ww = Convert.ToInt32(context.Request["ww"]); wh = Convert.ToInt32(context.Request["wh"]); x = Convert.ToInt32(context.Request["x"]); y = Convert.ToInt32(context.Request["y"]); cw = Convert.ToInt32(context.Request["cw"]); ch = Convert.ToInt32(context.Request["ch"]); guid = Guid.NewGuid().ToString(); using (OracleConnection conn = new OracleConnection(context.Cache["ORASTR"].ToString())) { conn.Open(); OracleCommand comm = conn.CreateCommand(); OracleParameter[] parms = new OracleParameter[] { new OracleParameter(":GUID", OracleType.VarChar), new OracleParameter(":DATA", OracleType.NClob), }; parms[0].Value = guid; parms[1].Value = htmltext; comm.CommandText = SQL_INSERT; comm.CommandType = CommandType.Text; foreach (OracleParameter parm in parms) { comm.Parameters.Add(parm); } comm.ExecuteNonQuery(); } string URL = context.Request.Url.AbsoluteUri.Substring(0, context.Request.Url.AbsoluteUri.IndexOf("SVR/GetSnap.ashx")); string url = URL + "Delegate.aspx?q=" + guid + "&w=" + ww + "&h=" + wh; string PATH = @"" + context.Server.MapPath(@"~") + context.Cache["CACHEPATH"].ToString() + guid + ".png"; SnapParams para = new SnapParams(url, PATH, ww, wh, x, y, cw, ch); SnapResult res = SnapUtil.Snap(para); context.Response.Write("window.open('" + URL + context.Cache["CACHEURL"].ToString() + guid + ".png')"); }
public static SnapResult Snap(SnapParams p) { //多线程传递参数麻烦,用静态变量来储存当前截图的参数 SnapUtil.para = new SnapParams(p.m_Url, p.m_Path, p.m_WinWidth, p.m_WinHeight, p.m_Left, p.m_Top, p.m_SnapWidth, p.m_SnapHeight); Thread t = new Thread(new ThreadStart(t_callback)); t.SetApartmentState(ApartmentState.STA); t.Priority = ThreadPriority.Highest; t.Start(); while (t.ThreadState != ThreadState.Stopped) { System.Windows.Forms.Application.DoEvents(); } //线程返回结果 return(SnapUtil.result); }