顯示具有 Flex 標籤的文章。 顯示所有文章
顯示具有 Flex 標籤的文章。 顯示所有文章

[Flex] 在Flex 4(Flash Builder 4) 中呼叫 .Net Web Service

2011/04/01

之前有分享過幾篇 使用Flex Call .Net WebService 那是使用  Flex 3 的方法..
現在更新到Flex 4 還真的有點不習慣..

從Flex 2 玩到現在只能說她依賴IDE的成分越來越重..
好的是簡單,快速 但是缺點是很多東西在理解上面會不如以前來的紮實..
Anyway ,既然都已經到了21 世紀我們就來看看Flex 4 在Call WebService是有多溫馨..
不過說真的,只要學會了會覺得Call WebService很簡單,但是如果以前是玩Flex 的人現在玩Flex 4
反而會被Flash Builder 弄得霧沙沙~~


[Flex] 在 Flex4 中取得(GET)外部參數..

2011/02/14

之前在 在 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 中…


[Flex4] VGroup 出現卷軸,使用VScrollBar

2010/11/18

筆記一下..
因為在Flex 3 中 的 VBox 只要設定 verticalScrollPolicy 就會出現…

但是在 Flex4(Flash Builder 4) 已經不見了…
現在的做法是改成 使用 VScrollBar 這物件去做控制.
這作法雖然麻煩點..
但是可以自訂的能力會變得更高…


[Silverlight] Blur Effect 筆記 包含 Flex Blur Effect

2010/09/27

最近有案子會用到Blur 的效果..
雖然 在Expression Blend 裡面是很簡單..
只需要在 Property 中對 Effect 按下 New
sshot-20
選擇BlurEffect 就可以完成..


Flex 關於 Label 如何變成 Button

2010/07/26

在Flex 中 ,如何讓 Label 物件像是Button 一樣..


滑鼠移過去有手的符號..

必須要增加幾個屬性...



Flex呼叫Javascript function

2010/02/28

在ActionScript 中..

呼叫JavaSCript function 的方法


var obj:Object = ExternalInterface.call('jsFunctionName', 'parameter1', 'parameter2', .........);


ActionScript 取亂數

2009/12/23

紀錄一下不然每次忘記都還要再重想一下..

Flex 取得某範圍亂數

程式function 如下:



public function GetRangeRandom(min:Number,max:Number):Number
{
return Math.round(Math.random()*(max-min))+min;
}



Flex 下面處理Cross Domain 問題

2009/11/17

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



如何讓 SWFLoader 與 被載入的程式作溝通

2008/10/15

如果使用 SWFLoader 要跟其內部 程式 傳遞參數時,
只要被載入的程式有開放介面提供外部呼叫,
就可以透過 System Manager 來呼叫。
例如:
被載入的程式(SWFLoaded)開放的介面:public function setVarOne(newText:String):void
主程式範例:


Flex 取得外部參數

2008/10/13

假設你使用Flex 製作出一顆 SWF檔案

需要讀出外部參數

譬如

http://www.sample.com.tw/Main.swf?UserId=Lucifer


因為程式需求需要把UserId讀進來



TabNavigation 標籤改變事件

2008/09/18

MXML :

 <tabnavigation change="onChange(event)" id="tabnav" />



Action Script

private function onChange(IndexChangeEvent):void
{
//改變的目標
  var child:DisplayObject = event.relatedObject;
//相當於 tabnav.getChildAt(event.newIndex);
}


switch with no case will report internal build error when compiling

2008/05/21



var foo:int = 2;
switch (foo) {

}


一定要在 switch 裡面放 case,否則編譯時會回報 internal build error。Flex Builder 不會指出是這個敘述不正確,找 error log 也看不出所以然來。

如果沒注意到這件事,會讓你 debug 很久。


Flex 3 Call .Net WebService (3)

2008/04/01

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>



Flex 3 Call .Net WebService (2)

1. 開啟Flex 3 並新增專案 命名為 FlexCallWebServiceSample

2. Import 自己寫的WebService 也是 Flex 3 新增號稱強大的功能
選擇 Data - > Import WebService (WSDL)



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;} //地址
}




Flex 3 Call .Net WebService (0)


Flex - 讓圖片(Image)可以單向放大縮小

2008/03/24

只要將 Image 的 maintainAspectRatio property 設為 false,圖片即可單向放大縮小,而不是依照等比例來放大縮小。

另外要設定 scaleContent 的 property 設成 "true" 圖片才能放大縮小。


一些Flex入門文件

2008/03/23

ActionScript 3 Design Patterns

Flex 3 API

Flex 3 官方文件

Flex 3 特色介紹


使用 BitmapData 來做影像翻轉

2008/03/19

水平翻轉:將最上列的像素與最下列的像素做交換, 將第二列的像素與最下列的像素做交換, 將第三列...., 一直做到中間列。
垂直翻轉:做法同上,只是改成最左欄與最右欄交換。

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);
} 


程式 . 生活 . D小調.@2010 | Binary Design: One Winged Angel.