随笔- 5  文章- 14  评论- 4 
2010年5月23日

有載入外部資源的都知道,Flash相對路徑是根據它所在HTML而不是Flash自己本身,例如網頁http://luar.com.hk/test.html有一個http://luar.com.hk/swf/test.swf,這個Flash以相對路徑載入test.xml,Flash Player載入http://luar.com.hk/test.xml而不是http://luar.com.hk/swf/test.xml。因為這種特性,往往發生很多發佈上問題。開發人員明明在本地測試妥當,所有相關files連同swf都放在同一個folder裡面,到交付客戶時,卻出現問題,因為別人可能喜歡將整個東西放在一個subfolder下,在HTML嵌入Flash時,Flash和本身HTML根本不在同一個folder下,結果出現找不到外部資源問題。

其實HTML發佈Flash的參數有一個叫base,可以指示Flash相對路徑由那裡開始,只要設定base=".",就可以跟著Flash路徑走。

平常例子:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000〃
width="500〃
height="300〃
codebase="http://active.macromedia.com/flash7/cabs/swflash.cab#version=9,0,0,0">
<param name="base" value="."></param>
<param name="movie" value="swf/test.swf"></param>
<param name="play" value="true"></param>
<embed base="." src="swf/test.swf"
width="500" height="300" play="true"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
</embed></object>

用SWFObject例子;

var swfobj = new SWFObject(value, "swf/test.swf", 500, 300, "9.0.0.0", "#FFFFFF");
swfobj.addParam("base", ".");
swfobj.write("swfDiv");

用Adobe自帶Publish的AC_RunActiveContent.js例子;

AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
'base', '.',
'width', '500',
'height', '300',
'src', 'test',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'test',
'bgcolor', '#ffffff',
'name', 'test',
'menu', 'true',
'movie', 'swf/test',
'salign', ''
);
posted @ 2010-05-23 16:17 隔山打牛 阅读(134) 评论(0) 编辑
2008年11月2日
    public static void Fill<T>(IDataReader sdr, T entity)
    {
        for (int i = 0; i < sdr.FieldCount; i++)
        {
            PropertyInfo pi = entity.GetType().GetProperty(sdr.GetName(i));
            if (pi != null)
            {
                if (sdr.GetValue(i) != DBNull.Value)
                {
                    pi.SetValue(entity, sdr.GetValue(i), null);
                }
            }
        }
    }
    public static IList<T>  EnumDataReader<T>( IDataReader idr)
    {
        IList<T> IL = new List<T>();
        while (idr.Read())
        {
            T entiy = Activator.CreateInstance<T>();
            Fill<T>(idr,entiy);
            IL.Add(entiy);
        }
        return IL;
    }
posted @ 2008-11-02 01:08 隔山打牛 阅读(31) 评论(0) 编辑
2008年10月29日

using System;
using System.Data;
using System.Text;
using System.Collections.Generic;
using System.Reflection;

/// <summary>
/// 将DataTable或Ilist<>转换成JSON格式
/// </summary>
public class ToJson
{
    public ToJson()
    {

    }
    public static string DataTableToJson(string jsonName, DataTable dt)
    {
        StringBuilder Json = new StringBuilder();
        Json.Append("{\"" + jsonName + "\":[");
        if (dt.Rows.Count > 0)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                Json.Append("{");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\"");
                    if (j < dt.Columns.Count - 1)
                    {
                        Json.Append(",");
                    }
                }
                Json.Append("}");
                if (i < dt.Rows.Count - 1)
                {
                    Json.Append(",");
                }
            }
        }
        Json.Append("]}");
        return Json.ToString();
    }
    public static string ObjectToJson<T>(string jsonName, IList<T> IL)
    {
        StringBuilder Json = new StringBuilder();
        Json.Append("{\"" + jsonName + "\":[");
        if (IL.Count > 0)
        {
            for (int i = 0; i < IL.Count; i++)
            {
                T obj = Activator.CreateInstance<T>();
                Type type = obj.GetType();
                PropertyInfo[] pis = type.GetProperties();
                Json.Append("{");
                for (int j = 0; j < pis.Length; j++)
                {
                    Json.Append("\"" + pis[j].Name.ToString() + "\":\"" + pis[j].GetValue(IL[i], null) + "\"");
                    if (j < pis.Length - 1)
                    {
                        Json.Append(",");
                    }
                }
                Json.Append("}");
                if (i < IL.Count - 1)
                {
                    Json.Append(",");
                }
            }
        }
        Json.Append("]}");
        return Json.ToString();
    }
}

posted @ 2008-10-29 22:38 隔山打牛 阅读(604) 评论(2) 编辑
2008年10月26日
摘要: JS[代码]CSS[代码]前台调用:suggest.init(文本框ID);后台文件:[代码]阅读全文
posted @ 2008-10-26 16:14 隔山打牛 阅读(461) 评论(0) 编辑
2008年10月8日
1. 返回所有的会员:
     string query = "from Member";
     IList member = session.CreateQuery(query).List();

2. 返回以b开头的会员:
     string query = "from Member m where m.name like b%";
     IList members= session.CreateQuery(query).List();

3. 返回所有的会员ID和名称:
     string query = "select m.MemberId, m.Name from Member m";
     IList members = session.CreateQuery(query).List();
     注意:此处的MemberId, Name均为Member对象的属性.
     返回的并不是members对象的集合,而是一个一维数组的集合,
     其中array[0]为MemberId, array[1]为Name

4. 返回会员的总数:(用此方法时,session 和transcation都不能关闭和提交,否则IEnumerrator将取不到数据)
     string query = "select count(*) from Member";
     IEnumerator e = Session.CreateQuery(query).Enumerable().GetEnumerator();
     e.MoveNext;
     int rowCount = (int)(e.Current);

5. 返回指定(从20-40)的会员
     string query = "from Member";
     IList Members = session.CreateQuery(query)
                                 .SetFirstResult(20).SetMaxResults(20).List()

 

 

Nhiberante执行sql语句

Using Nhibernate.Engine;

 

string sql = "update s_companyconfig set isvalid={0} where numconpanyid={1} and numModelId={2}";

        sql = string.Format(sql, numVlaid, numcompanyid, numModel);

        NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();

        ISessionFactoryImplementor factory = (ISessionFactoryImplementor)cfg.BuildSessionFactory();

        System.Data.IDbCommand cmd = new System.Data.SqlClient.SqlCommand();

        cmd.CommandText = sql;

        System.Data.IDbConnection conn = factory.OpenConnection();

        cmd.Connection = conn;

        conn.Open();

        cmd.ExecuteNonQuery();

        conn.Close();

posted @ 2008-10-08 15:29 隔山打牛 阅读(77) 评论(0) 编辑