看板 Flash 關於我們 聯絡資訊
※ 引述《AizawaYuichi (相沢祐一)》之銘言: : 恩...不太會AS3 : 這篇純粹是請各位幫我修正寫法 : function set_obj(){ : var obj=new mc_obj() //mc_obj是元件庫的MC : with(obj){ : name="mc_obj" : x=100 : y=200 : } : addChild(obj) : } : set_obj() : MovieClip(getChildByName("mc_obj")).gotoAndStop(50) : 以上是確定可以執行的 : 可是... : obj是function內var的變數(暫時用) : (同一function內可能用obj去new各種東西) : 離開之後無法呼叫 : 又不想在外面為了各種MC呼叫各種全域變數 : 所以我只好給他name屬性 : 並且gCB : 又因為要gAS,所以前面要轉型為MC : (奇怪元件庫就是MC啦,new下來類型不對嗎?Orz) : 總之整個就很亂 : 請問以上的程式碼應該怎麼修正 : 比較符合一般AS3的寫法? 你的函數可以傳回值 如果是我會這樣寫 funciton NewMc_obj(x:int, y:int):mc_obj { var obj:mc_obj =new mc_obj(); //mc_obj是元件庫的MC obj.x = x; obj.y = y; return obj; } function anotherFunction(obj:mc_obj):void { obj.gotoAndStop(50); } 用法1 NewMc_obj(100, 200).gotoAndStop(50); 用法2 var obj = NewMc_obj(100, 200); obj.gotoAndStop(50); 用法3 anotherFunction(NewMc_obj(100, 200)); 用法4 var obj = NewMc_obj(100, 200); anotherFunction(obj); -- blog:http://etrex.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.137.198.18
AizawaYuichi:好用法,那如果新增時是在某function 04/13 18:41
AizawaYuichi:但是在另外的function內才要gotoAndStop()呢? 04/13 18:41
AizawaYuichi:obj應該已經失效了吧?不給name行得通嗎? 04/13 18:42
etrexetrex:把你的 mc_obj 當作參數傳到另一個 function 裡 04/13 18:42
※ 編輯: etrexetrex 來自: 140.137.198.18 (04/13 18:44) ※ 編輯: etrexetrex 來自: 140.137.198.18 (04/13 18:44)
etrexetrex:我認為多宣告一個變數會比用 name 好 04/13 18:45