Re: [問題] 想破頭了...Q_Q

看板Flash作者 (CJ Cat)時間17年前 (2008/03/10 23:17), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《zemaitis (Peace~!)》之銘言: : 問題1.講義檔案的第五行 root.addChild(myBubble); : 可以得到亂數產生的泡泡,但是我自己的檔案卻要寫stage.addChild(myBubble); : 才能得到效果,實在想不通,是層級問題?還是? : 問題2.講義檔案第18行 var mc:MovieClip=root.getChildByName("bubble"+i); : 我不太理解為什麼要藉由root.getChildByName("bubble"+i)來定義mc : getChildByName("bubble"+i)出來部是只是字串嗎? : 此外,我在自己的檔案寫上述的code時,編譯器錯誤說明 : "1118: 靜態類型 flash.display:DisplayObject 的值以隱含方式強制轉型成可能不相關 : 的類型 flash.display:MovieClip。" : 真的搞不懂了@@...希望板上的高手幫我解惑一下..謝謝:) 嗯...當你看到這種打死不知道error在哪裡的狀況 要注意一下你AS3的compiler是不是被設定在 "strict mode" (其實這就是你compile不出來的原因) 範例檔可以順利通過compilation是因為他沒有勾選strict mode compiler 而你的則有,所以你的compiler會特別"嚴格",許多不安全的語法都不允許 要更改的話到property inspector裡面的 Publish settings 按下ActionScript version右邊的Settings按鈕 進去把strict mode的模式取消掉 這樣你的code就可以copmile了 只是還有一些NULL的reference問題,應該就是你有reference漏洞,自己檢查看看吧 另外一個補救辦法 在strict mode的copmiler對type是很要求的 你出錯的原因就是root是DisplayObject 需要cast成DisplayObjectContainer才可以使用addChild()這個method DisplayObjectContainer(root).addChild() 或者 (root as DisplayObjectContainer).addChild() getChildByName()回傳的也是DisplayObject,所以也需要cast成MovieClip var mc:MovieClip = MovieClip(getChildByName()) 或者 var mc:MovieClip = getChildByName() as MovieClip -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.74.93

03/12 11:55, , 1F
稍微有點懂了:)..謝謝相助
03/12 11:55, 1F
文章代碼(AID): #17rL3vey (Flash)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #17rL3vey (Flash)