jQuery的selector為$()
但許多其他frameWork亦使用$(),
要解決這部份衝突
1.jQuery.noConflict();
2.原本使用$,都改用jQuery
如$(this)
改為jQuery(this)
2009年4月16日 星期四
2009年4月9日 星期四
Flash解析xml,對空白tag判斷的幾種結果
當Flash由xml取得整份的xml資料,要檢查某個tag是否存在
或是否是空值
sample xml
測試結果
(xml.tag1=="")為true
(xml.tag2=="")為true
(xml.tag3=="")為true
(xml.tag4=="")為true
(xml.tag4)為true
即使node不存在還是會傳回true...不要用tag去做存在檢查
或是否是空值
sample xml
(test)
(tag1)(/tag1)
(tag2/)
(tag3) (/tag3)
(/test)
測試結果
(xml.tag1=="")為true
(xml.tag2=="")為true
(xml.tag3=="")為true
(xml.tag4=="")為true
(xml.tag4)為true
即使node不存在還是會傳回true...不要用tag去做存在檢查
2009年3月27日 星期五
載入外部swf當作Asset Library
如果在開發Flash專案,有部份asset可能需要動態更新
由設計人員進行維護,可以將asset存放在獨立的swf內
透過載入外部swf到主程式內操作使用
這部份可應用在需要做介面更換的程式或遊戲開發
1.載入外部swf檔案
這個要當作Asset Lib的swf擋,stage上可以不要放物件
lib內要被當作asset使用的物件,都要設定其linkage
linkage名稱就會被當作被Class名稱而被其他程式引用
2.載入完成後,透過取物件的applicationDomain屬性來取得
ApplicationDomain物件
3.利用ApplicationDomain物件的getDefinition()來取得所要的class
4.注意:當要實體化取得的class時,實體的類別還是要宣告為MovieClip
才不會出錯
相關連結
由設計人員進行維護,可以將asset存放在獨立的swf內
透過載入外部swf到主程式內操作使用
這部份可應用在需要做介面更換的程式或遊戲開發
1.載入外部swf檔案
這個要當作Asset Lib的swf擋,stage上可以不要放物件
lib內要被當作asset使用的物件,都要設定其linkage
linkage名稱就會被當作被Class名稱而被其他程式引用
2.載入完成後,透過取物件的applicationDomain屬性來取得
ApplicationDomain物件
3.利用ApplicationDomain物件的getDefinition()來取得所要的class
4.注意:當要實體化取得的class時,實體的類別還是要宣告為MovieClip
才不會出錯
var myLoader:Loader= new Loader();
var myUrlReq:URLRequest= new URLRequest(_path);
myLoader.load(myUrlReq);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
function onLoaded(event:Event):void{
var appDomain:ApplicationDomain = event.target.applicationDomain;
var myClass:Class = Class(appDomain.getDefinition(_name));
var myInstance:MovieClip=new myClass();
addChild(myInstance)
}
相關連結
如何取得動態換行文字高度
對於動態載入外部文字的TextField,
使用autoSize讓TextFild可設定寬度自動換行
但無法抓到正確的文字高度
1.先以autoSize設定讓他可自動換行後
2.再設定允許要使用的寬度
這時文字已經依照你的設定的寬度,自動換行排列
3.關掉autoSize
4.這時你可以取得文字框的高度
myText.autoSize = TextFieldAutoSize.LEFT;
myText.width =300;
myText.autoSize = TextFieldAutoSize.NONE;
trace(myText.textHeight)
使用autoSize讓TextFild可設定寬度自動換行
但無法抓到正確的文字高度
1.先以autoSize設定讓他可自動換行後
2.再設定允許要使用的寬度
這時文字已經依照你的設定的寬度,自動換行排列
3.關掉autoSize
4.這時你可以取得文字框的高度
myText.autoSize = TextFieldAutoSize.LEFT;
myText.width =300;
myText.autoSize = TextFieldAutoSize.NONE;
trace(myText.textHeight)
2009年3月9日 星期一
讓兩個Sprite同時接收到MouseEvent
如何讓疊合的兩個mc同時都可以
接收到mouse的event
情境:
1.有一個bg_mc,上面有ㄧ個star_mc
2.在bg_mc上設定Roll_Over與Roll_Out event監聽
3.當滑鼠在bg_mc上會觸發Roll_Over事件
但當滑鼠移動到star_mc上,則bg_mc的Roll_Out事件會被觸發
如何讓滑鼠在star_mc上,而Roll_Out不會被觸發
做法:
1.產生一個mcContainer,把bg_mc與star_mc都加到
mcContainer內
2.Roll_Over與Roll_Out設定到 mcContainer上
mcContainer.addEventListener(MouseEvent.ROLL_OUT,XXX);
mcContainer.addEventListener(MouseEvent.ROLL_OVER,XXX);
mcContainer.mouseChildren=true;
即可
接收到mouse的event
情境:
1.有一個bg_mc,上面有ㄧ個star_mc
2.在bg_mc上設定Roll_Over與Roll_Out event監聽
3.當滑鼠在bg_mc上會觸發Roll_Over事件
但當滑鼠移動到star_mc上,則bg_mc的Roll_Out事件會被觸發
如何讓滑鼠在star_mc上,而Roll_Out不會被觸發
做法:
1.產生一個mcContainer,把bg_mc與star_mc都加到
mcContainer內
2.Roll_Over與Roll_Out設定到 mcContainer上
mcContainer.addEventListener(MouseEvent.ROLL_OUT,XXX);
mcContainer.addEventListener(MouseEvent.ROLL_OVER,XXX);
mcContainer.mouseChildren=true;
即可
訂閱:
文章 (Atom)