C# PNG 轉 JPG 會變黑的問題
參考程式碼:
Image img = Image.FromFile(@"c:\source.png", true); 
Bitmap bmp = new Bitmap(img );
Graphics graf = Graphics.FromImage(bmp);
graf.Clear(Color.White);
graf.DrawImage(img, 0, 0, img.Width, img.Height);
bmp.Save(@"c:\source.jpg", ImageFormat.Jpeg);
標籤: ASP.net, C# | 0 Comments
如何讓 SWFLoader 與 被載入的程式作溝通
如果使用 SWFLoader 要跟其內部 程式 傳遞參數時,
只要被載入的程式有開放介面提供外部呼叫,
就可以透過 System Manager 來呼叫。
例如:
被載入的程式(SWFLoaded)開放的介面:public function setVarOne(newText:String):void
主程式範例:
標籤: Flex | 0 Comments
Flex 取得外部參數
假設你使用Flex 製作出一顆 SWF檔案
需要讀出外部參數
譬如
http://www.sample.com.tw/Main.swf?UserId=Lucifer
因為程式需求需要把UserId讀進來
標籤: 教學, Flex | 0 Comments
TabNavigation 標籤改變事件
MXML :
 <tabnavigation change="onChange(event)" id="tabnav" />
Action Script
private function onChange(IndexChangeEvent):void
{
//改變的目標
  var child:DisplayObject = event.relatedObject; 
//相當於 tabnav.getChildAt(event.newIndex);
}
標籤: Flex | 0 Comments
設定 Subversion 不能匿名簽出程式碼
在 svn/svnserve.conf 裡 anon-access = read 為預設值,必須改為 anon-access = none
然後在 conf/authz 裡設定
[/]
@developer = rw  #developer 為群組, 必須在群組名稱前加上 @
#* = r
Reference : DigitLiao
標籤: Subversion | 0 Comments
解決終端服務90天限制問題
win2k服務器上裝了應用程序模式的終端服務,並打了sp4的終端服務破解補丁,經測試解除了時間限制。但服務器在一次系統自動更新以後,該補丁失效了。90天以後,客戶機不能再登陸到服務器。那個著急啊~~~~~~~~~
後來,這篇文章幫助了我:http://www.33d9.com/doc/article/641.html
貼出原文與大家分享:
標籤: Window2003 | 0 Comments
switch with no case will report internal build error when compiling
var foo:int = 2;
switch (foo) {
}
一定要在 switch 裡面放 case,否則編譯時會回報 internal build error。Flex Builder 不會指出是這個敘述不正確,找 error log 也看不出所以然來。
如果沒注意到這件事,會讓你 debug 很久。
標籤: Flex | 0 Comments
Flex 3 Call .Net WebService (3)
Flex 3 程式碼如下
分別測試跟呼叫之下的 Web Service
程式碼如下:
 <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 <mx:Button x="75" y="52" label="Add  a data." click="btnInsert_Clidk();" width="133"/>
 <mx:Script>
  <![CDATA[
   import generated.webservices.GetUserInfoCount_request;
   import generated.webservices.GetUserInfoCountResultEvent;
   import generated.webservices.ArrayOfUserInfo;
   import mx.collections.ArrayCollection;
   import generated.webservices.GetUserInfoArrayResultEvent;
   import generated.webservices.AddUserInfoResultEvent;
   import generated.webservices.AddUserInfo_request;
   import generated.webservices.TestService;
   import generated.webservices.UserInfo;
   import mx.controls.*;
  
  
   // TestService
   private var objService:TestService=new TestService();
  
   public function btnInsert_Clidk():void
   {
    objService.addaddUserInfoEventListener(resultAddUserInfo);
   
    //新增一筆資料 呼叫  WebService 中的  AddUserInfo(string name,string tel,string addr)
    objService.addUserInfo("Lucifer.Loudon","0917796416","台北市內湖區");
   }
  
   //取回結果並用Alet.show方式秀出
   public function resultAddUserInfo(evt:AddUserInfoResultEvent):void
   {
   
    Alert.show("Name:" + evt.result.Name +", Tel:"+ evt.result.Tel+", Addr:"+evt.result.Addr);
   }
  
 
  
   public function btnGetAllData_Click():void
   {
    objService.addgetUserInfoArrayEventListener(resultGetUserInfo);
   
    //呼叫   UserInfo[] GetUserInfoArray()
    objService.getUserInfoArray_send();
   }
  
   public function resultGetUserInfo(evt:GetUserInfoArrayResultEvent):void
   {
   
    var list:ArrayCollection = evt.result as ArrayCollection ;
    dg.dataProvider=list;
   }
  
  
   public function btnGetArrayCount_Click():void
   {
    var list:ArrayOfUserInfo=new ArrayOfUserInfo();
   
    for(var i:int=1;i<=20;i++)
    {
     var tmp:UserInfo=new UserInfo();
     tmp.Name="Name"+i.toString();
     tmp.Tel="TEL"+i.toString();
     tmp.Addr="Addr"+i.toString();
    
     list.addItem(tmp);
    }
   
    //呼叫 GetUserInfoCount(UserInfo[] userInfos) 並傳入 UserInfo[20]
    objService.addgetUserInfoCountEventListener(resultGetArrayCount);
    objService.getUserInfoCount(list);
   }
  
   public function resultGetArrayCount(evt:GetUserInfoCountResultEvent):void
   {
    Alert.show(String(evt.result));
   }
  
  ]]>
 </mx:Script>
 <mx:Button x="75" y="106" label="Get AllDataInfo" width="133" id="btnGetAllData" click="btnGetAllData_Click()"/>
 <mx:DataGrid x="75" y="179" width="399" height="258" id="dg">
  <mx:columns>
   <mx:DataGridColumn headerText="Name" dataField="Name"/>
   <mx:DataGridColumn headerText="Tel" dataField="Tel"/>
   <mx:DataGridColumn headerText="Addr" dataField="Addr"/>
  </mx:columns>
 </mx:DataGrid>
 <mx:Button x="242" y="52" label="Get Array Count" width="138" id="btnGetArrayCount" click="btnGetArrayCount_Click()"/>
</mx:Application>
標籤: C#, Flex, WebService | 0 Comments
Flex 3 Call .Net WebService (2)
1.  開啟Flex 3 並新增專案 命名為 FlexCallWebServiceSample    
標籤: C#, Flex, WebService | 0 Comments
Flex 3 Call .Net WebService (1)
首先我們得先建立WebService ..
開啟VS.Net ...
並且建立一個 Class  為
 public class UserInfo
{
   public string Name{get;set;} //姓名
   public string Tel{get;set;} // 電話
   public string Addr{get;set;} //地址
}
標籤: C#, Flex, WebService | 0 Comments
Flex - 讓圖片(Image)可以單向放大縮小
只要將 Image 的 maintainAspectRatio property 設為 false,圖片即可單向放大縮小,而不是依照等比例來放大縮小。
另外要設定 scaleContent 的 property 設成 "true" 圖片才能放大縮小。
標籤: Flex | 0 Comments
當您使用 Visual C# . NET 使用 CookieContainer 來維護狀態在 Web 服務
在編寫 WebService 的時候,根據預設值, ASP . NET 工作階段支援之每一個 Web 服務方法已關閉。 您必須明確地啟用工作階段之每一個 Web Service 方法需要工作階段狀態支援。 若要啟用工作階段支援, WebMethod 屬性 (Attribute) 加入 EnableSession 屬性。 如果要執行這項操作,只要於 [WebMethod] 加入 EnableSession Attribute 即可
Example:
 [WebMethod(EnableSession = true)]
public int Counter()
{    int count;
    if (Session["count"] == null)
    {
        count = 1;
    }
    else
    {
        count = (int)Session["count"] + 1;
    }
    Session["count"] = count;
    return count;
}
標籤: C#, WebService | 0 Comments
PureMVC 文章
From Cairngorm to PureMVC : a quick comparison | Flex My Day
Handling deferred view component creation within the PureMVC framework
PureMVC_Implementation_Idioms_and_Best_Practices.pdf
Flex 框架比較投影片
https://admin.adobe.acrobat.com/_a200985228/p12266504/
標籤: 文件, PureMVC | 0 Comments
使用 BitmapData 來做影像翻轉
水平翻轉:將最上列的像素與最下列的像素做交換, 將第二列的像素與最下列的像素做交換, 將第三列...., 一直做到中間列。
垂直翻轉:做法同上,只是改成最左欄與最右欄交換。
private function getImageBitmapData(image: Image):BitmapData { var bd:BitmapData = Bitmap(image.content).bitmapData; return bd; }
水平翻轉
private function horizontalFlip(event:MouseEvent):void { var bitmapData:BitmapData = getImageBitmapData(img); var rect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var data:ByteArray = bitmapData.getPixels(rect); var width:int = bitmapData.width; var height:int = bitmapData.height; var arr:Array = new Array(width * height * 4); data.position = 0; for(var y:int = 0; y < height; y++) { for(var x:int = width - 1; x >= 0; x--) { var val:int = data.readInt(); var pos:int = (y * width * 4) + (x * 4); arr[pos + 0] = (val & 0xFF000000) >> 24; arr[pos + 1] = (val & 0x00FF0000) >> 16; //data.readByte(); arr[pos + 2] = (val & 0x0000FF00) >> 8; //data.readByte(); arr[pos + 3] = (val & 0x000000FF); //data.readByte(); } } var b:ByteArray = new ByteArray(); for(var j:int = 0; j < data.length; j++) { b.writeByte(arr[j]); } b.position = 0; bitmapData.setPixels(rect, b); } 垂直翻轉
private function verticalFlip(event:MouseEvent):void { var bitmapData:BitmapData = getImageBitmapData(img); var rect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var data:ByteArray = bitmapData.getPixels(rect); var width:int = bitmapData.width; var height:int = bitmapData.height; var arr:Array = new Array(width * height * 4); data.position = 0; for(var y:int = height - 1; y >= 0; y--) { for(var x:int = 0; x < width; x++) { var val:int = data.readInt(); var pos:int = (y * width + x) << 2; //在迴圈中,使用 shift 運算子來提升運算效率。 arr[pos + 0] = (val & 0xFF000000) >> 24; arr[pos + 1] = (val & 0x00FF0000) >> 16; //data.readByte(); arr[pos + 2] = (val & 0x0000FF00) >> 8; //data.readByte(); arr[pos + 3] = (val & 0x000000FF); //data.readByte(); } } var b:ByteArray = new ByteArray(); for(var j:int = 0; j < data.length; j++) { b.writeByte(arr[j]); } b.position = 0; bitmapData.setPixels(rect, b); }
標籤: Flex | 0 Comments
