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