[Flex] 在Flex 4(Flash Builder 4) 中呼叫 .Net Web Service
之前有分享過幾篇 使用Flex Call .Net WebService 那是使用 Flex 3 的方法..
現在更新到Flex 4 還真的有點不習慣..
從Flex 2 玩到現在只能說她依賴IDE的成分越來越重..
好的是簡單,快速 但是缺點是很多東西在理解上面會不如以前來的紮實..
Anyway ,既然都已經到了21 世紀我們就來看看Flex 4 在Call WebService是有多溫馨..
不過說真的,只要學會了會覺得Call WebService很簡單,但是如果以前是玩Flex 的人現在玩Flex 4
反而會被Flash Builder 弄得霧沙沙~~
標籤: 教學, ActionScript, Flex | 0 Comments
[Flex] 在 Flex4 中取得(GET)外部參數..
之前在 在 Flex 中取得(GET)外部參數.. 這篇文章去了解到在Flex 3 中
如何讀取到 http://www.sample.com.tw/Main.swf?UserId=Lucifer
其中網址傳進來的UserId 的值..
但是在Flex 4 中有些小改變…
所以筆記一下很容易忘記…
假設網址是 http://www.sample.com.tw/Main.swf?pid=Lucifer
所以在ActionScript 中…
標籤: ActionScript, Flex | 0 Comments
[Flex4] VGroup 出現卷軸,使用VScrollBar
筆記一下..
因為在Flex 3 中 的 VBox 只要設定 verticalScrollPolicy 就會出現…
但是在 Flex4(Flash Builder 4) 已經不見了…
現在的做法是改成 使用 VScrollBar 這物件去做控制.
這作法雖然麻煩點..
但是可以自訂的能力會變得更高…
標籤: Flex | 0 Comments
[Silverlight] Blur Effect 筆記 包含 Flex Blur Effect
最近有案子會用到Blur 的效果..
雖然 在Expression Blend 裡面是很簡單..
只需要在 Property 中對 Effect 按下 New
選擇BlurEffect 就可以完成..
標籤: ActionScript, C#, Flex, Silverlight | 0 Comments
Flex呼叫Javascript function
在ActionScript 中..
呼叫JavaSCript function 的方法
var obj:Object = ExternalInterface.call('jsFunctionName', 'parameter1', 'parameter2', .........);
標籤: 教學, ActionScript, Flex | 0 Comments
ActionScript 取亂數
紀錄一下不然每次忘記都還要再重想一下..
Flex 取得某範圍亂數
程式function 如下:
public function GetRangeRandom(min:Number,max:Number):Number
{
return Math.round(Math.random()*(max-min))+min;
}
標籤: ActionScript, Flex | 1 Comments
Flex 下面處理Cross Domain 問題
Step 1 .
開啟記事本/Nopad++
在內容貼上
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtads/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
之後存檔為 crossdomain.xml
標籤: cross domain, Flex | 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
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
使用 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