2010年7月2日 星期五
SWF內使用play()當function名稱,在IE8中會出現錯誤
SWF內若有使用到play( ),在IE8中會出現錯誤,因此在flash/flex開發中要注意,不要使用play()當做操作名稱。
SWF在瀏覽器中無法中文輸入問題
在SWF embed code中有一個wmode="Window" 如果wmode不是Window就會造成無法輸入中文。
參數說明:
Window
plays the application in its own rectangular window on a web page. Window indicates that the Flash application has no interaction with HTML layers and is always the topmost item.
Opaque
makes the application hide everything behind it on the page.
Transparent
makes the background of the HTML page show through all the transparent portions of the application and can slow animation performance.
Embed code:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="${application}" width="${width}" height="${height}"
codebase=http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab
>
<param name="movie" value="${swf}.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="${bgcolor}" />
<param name="wmode" value="transparent" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="wmode" value="Window">
<embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
width="${width}" height="${height}" name="${application}" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage=http://www.adobe.com/go/getflashplayer
wmode="Window"
>
</embed>
</object>
參數說明:
Window
plays the application in its own rectangular window on a web page. Window indicates that the Flash application has no interaction with HTML layers and is always the topmost item.
Opaque
makes the application hide everything behind it on the page.
Transparent
makes the background of the HTML page show through all the transparent portions of the application and can slow animation performance.
Embed code:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="${application}" width="${width}" height="${height}"
codebase=http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab
>
<param name="movie" value="${swf}.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="${bgcolor}" />
<param name="wmode" value="transparent" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="wmode" value="Window">
<embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
width="${width}" height="${height}" name="${application}" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage=http://www.adobe.com/go/getflashplayer
wmode="Window"
>
</embed>
</object>
2010年6月30日 星期三
常用名詞
常用名詞
URL:指Server所在
URI:指資源所在
resource:資源
client:客戶端,通常指"人"或"瀏覽器"。
interpret:解譯,指瀏覽器解譯HTML原始碼。
HTML:HyperText Markup Language 超文字標記語言。
HTTP:HyperText Transport Protocol 超文字傳輸協定。
tag:標籤。
status code:狀態碼,指web Server回應的狀態代碼。
request:請求。
response:回應。
just-in-time:即時。
CGI:Common Gateway Interface通用閘道介面,(Web伺服器的輔助應用程式),可以C、Python、PHP、Perl寫成,簡單說就是用來產生動態網頁的應用程式。
Servlet:JAVA寫成的Web伺服器的輔助應用程式。
URL:指Server所在
URI:指資源所在
resource:資源
client:客戶端,通常指"人"或"瀏覽器"。
interpret:解譯,指瀏覽器解譯HTML原始碼。
HTML:HyperText Markup Language 超文字標記語言。
HTTP:HyperText Transport Protocol 超文字傳輸協定。
tag:標籤。
status code:狀態碼,指web Server回應的狀態代碼。
request:請求。
response:回應。
just-in-time:即時。
CGI:Common Gateway Interface通用閘道介面,(Web伺服器的輔助應用程式),可以C、Python、PHP、Perl寫成,簡單說就是用來產生動態網頁的應用程式。
Servlet:JAVA寫成的Web伺服器的輔助應用程式。
2010年6月21日 星期一
spark組件排版方式等價於mx常用排版元件
此表列出在Flex3時常用的排版元件,在Flex4時如何等價使用
Canvas在Flex4中的等同用法是,使用Group組件,Goup的屬性layout給予BasicLayout類的實體。
Canvas 等價於 Group with Basicexample:
<Group>
<s:layout>
<s:BasicLayout/>
</s:layout>
//這裡置放要被排版的顯示組件
</Group>
或是
<layout="{new BasicLayout( )}">
HBox等價除了Gropu 配合 HorizontalLayout之外還有一個HGroup可以直接使用。
其餘組件皆是相同用法之。
Canvas在Flex4中的等同用法是,使用Group組件,Goup的屬性layout給予BasicLayout類的實體。
Canvas 等價於 Group with Basicexample:
<Group>
<s:layout>
<s:BasicLayout/>
</s:layout>
//這裡置放要被排版的顯示組件
</Group>
或是
<layout="{new BasicLayout( )}">
HBox等價除了Gropu 配合 HorizontalLayout之外還有一個HGroup可以直接使用。
其餘組件皆是相同用法之。
沒有等價於Spreak組件的MX組件
Flex4中若是有等價於MX的Spark組件建議優先使用,因為Spark組件將layout、style、skin抽離,使得組件更靈活,因此在Flex4使用手冊中有建議優先使用,而沒有等價於Spark組件時就繼續使用mx組件。
以下這張表列出沒有等價於Spark的mx組件表。
以下這張表列出沒有等價於Spark的mx組件表。
2010年6月18日 星期五
SWF 安全 crossdomain.xml檔
§SWF 安全性允許拜訪 crossdomain.xml
引言:
話說有一日小弟將開發好的SWF丟到公司的WebServer上,結果Remote變成無法取回資料了,一查之下才知道原來是Remote服務端沒有設置crossdomain.xml這個檔案,暫時為了測試先將crossdomain.mxl設置成允許所有網域拜訪,事後找了一下adobe的技術手冊,並將其部份整理一下做成筆記,以便日後方便使用。
crossdomain.xml的功能描述:
<?xml version="1.0" ?>
引言:
話說有一日小弟將開發好的SWF丟到公司的WebServer上,結果Remote變成無法取回資料了,一查之下才知道原來是Remote服務端沒有設置crossdomain.xml這個檔案,暫時為了測試先將crossdomain.mxl設置成允許所有網域拜訪,事後找了一下adobe的技術手冊,並將其部份整理一下做成筆記,以便日後方便使用。
crossdomain.xml的功能描述:
- 若要提供您網站伺服器的資料給另一個網域中的 SWF 檔使用,可以在伺服器中建立原則檔。「原則檔」是放置於您伺服器上特定位置中的 XML 檔,這支原則檔即是crossdomain.xml。
- 不管是SWF對SWF或是SWF對Remote gatway都必須在其拜訪所在地置放crossdomain.xml檔,以便管理允許由哪個網域來的SWF存取資料。
- 點陣圖、聲音、視訊
- XML與Text檔的載入
- SWF檔的載入
- Remote通訊
<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
簡單的解析Domain工具
§簡易解析domain的tools
在開發專案中,如果swf要提供Embed給其他網站使用,在swf內所要load動作等等的路徑就需要使用絕對路徑,但是若是直接將路徑寫死在開發環境環境中又要改來改去,所以最好的方式就是寫一個能夠解析目前swf所使用的domain為何,因此寫了一個簡單應急的小工具,日後若是有發現更好的方式或是BUG再回頭來補強該篇文章。
//寫一個簡單的工具Class
package com.utils.PathAnalyze
{
public class DomainPathAnalyze
{
/***
* 解析swf所在domain
* */
public function DomainPathAnalyze()
{
}
static public function getDomain(url:String):String
{
var count:int = url.length -1;
for(count ; url.charAt(count) != "/" ; count--)
{
}
return url.slice(0 , count);
}
}
}
//可藉由Application的loaderInfo.url取得swf所在網域,然後將此url交由DomainPathAnalyze的靜態方法來取得˙Domain
/*用法*/
DomainPathAnalyze.getDomain(loaderInfo.url);
由於成長之後學習到更好的方式因該改成以下方式將會更有效能。
static public function getDomain(url:String):String
{
var _index:int = url.lastIndex("/");
return url.slice(0 , index);
}
請參考 http://contest-start.blogspot.com/2011/03/blog-post.html
在開發專案中,如果swf要提供Embed給其他網站使用,在swf內所要load動作等等的路徑就需要使用絕對路徑,但是若是直接將路徑寫死在開發環境環境中又要改來改去,所以最好的方式就是寫一個能夠解析目前swf所使用的domain為何,因此寫了一個簡單應急的小工具,日後若是有發現更好的方式或是BUG再回頭來補強該篇文章。
//寫一個簡單的工具Class
package com.utils.PathAnalyze
{
public class DomainPathAnalyze
{
/***
* 解析swf所在domain
* */
public function DomainPathAnalyze()
{
}
static public function getDomain(url:String):String
{
var count:int = url.length -1;
for(count ; url.charAt(count) != "/" ; count--)
{
}
return url.slice(0 , count);
}
}
}
//可藉由Application的loaderInfo.url取得swf所在網域,然後將此url交由DomainPathAnalyze的靜態方法來取得˙Domain
/*用法*/
DomainPathAnalyze.getDomain(loaderInfo.url);
由於成長之後學習到更好的方式因該改成以下方式將會更有效能。
static public function getDomain(url:String):String
{
var _index:int = url.lastIndex("/");
return url.slice(0 , index);
}
請參考 http://contest-start.blogspot.com/2011/03/blog-post.html
訂閱:
文章 (Atom)