2015-03-30 46 views
0

我想從AS2採取一個較舊的教程星域,並將其移植到AS3。我不再收到任何編譯器錯誤,但我得到TypeError獲取類型錯誤#1123:過濾器運算符不支持類型,MainTimeline/enterFrameHandler()

下面是代碼:

this.addEventListener(Event.ENTER_FRAME, enterFrameHandler); 

import flash.display.MovieClip; 
import flash.events.Event; 

var stars = 100; 
var maxSpeed = 16; 
var minSpeed = 2; 

for(var i = 0; i<stars; i++) 
{ 
    var mc:MovieClip = new MovieClip(); 
    addChild(mc); 
    mc.name = "star","star"+i,i; 
    mc.x = Math.random() * stage.stageWidth; 
    mc.y = Math.random() * stage.stageHeight; 
    mc.speed = Math.random() * (maxSpeed-minSpeed)+minSpeed 
    var size = Math.random() * 2+(0.6*(Math.random() * 4)); 
    mc.width = size; 
    mc.height = size; 
} 

function enterFrameHandler(event:Event):void 
{ 
    var target:MovieClip = MovieClip(event.target); 
    for (var j = 0; j<stars;j++) 
    { 
     var mc = this.("star"+j); 
     if (mc.y>0) 
     { 
      mc.y -= mc.speed; 
     } 
     else 
     { 
      mc.y = stage.stageHeight; 
      mc.speed = Math.random() * (maxSpeed-minSpeed)+minSpeed; 
      mc.x = Math.random() * stage.stageWidth; 

     } 
    } 
}; 

TypeError我得到的是:

TypeError: Error #1123: Filter operator not supported on type SpaceBoost_loadscreen_star_fla.MainTimeline. at SpaceBoost_loadscreen_star_fla::MainTimeline/enterFrameHandler()

我很新在ActionScript編碼,和我剛開始學習,我去。 此外,如何清理它的任何有用的建議也歡迎!

問題1:

在你的第一個for循環,這一行:mc.name = "star","star"+i,i;

每個項目的名稱將最終成爲該

+0

您是否找到解決問題的方法? – BadFeelingAboutThis 2015-04-23 22:40:19

回答

0

兩個問題看一眼後,我看到相同(「星」),因爲在逗號後它只是一個字符串文字命令(假設這不會引發錯誤)。

通過這個改變來糾正:

mc.name = "star" + i; 

問題2

什麼是拋電流誤差,var mc = this.("star"+j); 在AS3,object.(expression)是E4X過濾。要通過實例名訪問對象,而不是做如下:

var mc = getChildByName("star" + j); 

我在這荒廢了,所以讓我知道,如果不解決您的問題。

+0

非常感謝您的幫助!我改變了這些部分,但現在我得到一個新的錯誤:TypeError:錯誤#1006:值不是一個函數。 在SpaceBoost_loadscreen3_star_fla :: MainTimeline/enterFrameHandler()所以肯定有一個問題,我如何處理事件enterframehandler – Maria 2015-03-30 21:38:44

+0

我在Issue2部分建議的代碼做了一點點更新。如果調試並顯示引發錯誤的實際行,這將會很有幫助。 – BadFeelingAboutThis 2015-03-30 22:13:22

+0

這就是問題所在,我的編譯器沒有顯示有任何問題。但星星沒有填充,並且在輸出部分出現類型錯誤。根據我所查找的內容,它似乎是一個運行時錯誤(#1006),它似乎不能識別我的EventListener作爲函數。也許第一行的API處理不正確?另一個問題可能是我沒有正確調用對象,但一切似乎拼寫正確....嗯 – Maria 2015-03-31 15:07:21

相關問題