1樓:水無月星惜
在說別人是新手之前,有沒有自己測試過?如果你用trace檢測過自己的**,就知道「天堂乙隻鳥」說的很多都有道理了
首先鍵盤的偵聽事件裡要把this換成stage是對的。且不說你這個mc動不動,首先trace(1)就沒反應。把this換成stage以後,鍵盤的偵聽才有效(難道這個還會因為flash版本不同有所差異嗎?
難道你的鍵盤偵聽一直是這樣寫的也能生效嗎?)
他說arror需要賦初始值也是對的。至於為什麼你用好幾種方法賦值都無效,因為你在arrormove中新增了arror:number這個引數
我不知道你為什麼加這個引數,作為enter_frame事件,這裡的引數顯然應該是e:event。因為你無端加了乙個arror:
number的引數,所以你在這個函式裡提及arror的時候,都等於在提及這個引數,而不是外部宣告的arror變數
又因為這個函式其實是enter_frame事件觸發的,呼叫時根本不可能傳遞任何number值給這個函式,arror引數總是為空,所以你只能在arrormove函式內部再對它進行賦值了。但這裡賦值並不是對arror這個變數,而只是對引數進行了賦值,也就是說,只是區域性的
我嘗試把this改成stage,arror:number改成e:event,並且一開始對arror賦值之後,arror_mc算是可以動了,但是動的方式很奇怪
函式內部的**我沒改,不知道你到底想做什麼樣的效果,總之用以下的**,arror_mc是動起來了,你再根據自己需要修改一下運動的**吧
var arror:number =0;
this.addeventlistener(event.enter_frame,arrormove);
function arrormove(e:event)
}stage.addeventlistener(keyboardevent.key_down,changearror);
function changearror(me:keyboardevent)}
2樓:匿名使用者
從你的**來看你是想實現物體在舞台上的移動,**需要改動下,首先arror沒有初始化,建議初始為0。
me改為e。
function arrormove(arror:number)中arror:number改為e:event。
處理函式不需要太複雜,只有兩句:
arror_mc.y+=arror;
arror_mc.x-=arror;
this都要改為stage。
3樓:
首先說一下,你的文件本身就有乙個重大的問題.且不說你想實現乙個什麼樣的功能,單從this引用就有很大的問題.首先按鍵事件只偵聽主場景的操作.
而對當前目標無效.這個你應當知道,所以要使銨鈕事件生效需要把this.改為stage.
另外,鍵盤按下事件本身就是乙個持續觸發事件.你對原變數的更改只會使他達到乙個你無法觸及的值例如持續按下某鍵.aroor變為2,4,6,8,10.......
最後再說一點,你的arror居然沒有初始化,這是乙個極不好的習慣.
4樓:匿名使用者
明顯你應該直接在changearror中呼叫arrormove(arror);
你加個enterframe事件完全沒用嘛。
actionscript 3 0“輸入文字”怎樣設定其大小
設定文字格式,就可以實現了 var tformat textformat new textformat tformat.font 黑體 font屬性就是設定字型格式,這裡設定為黑體 tf.defaulttextformat tformat 將文字格式應用於文字!這樣就大功告成了。忘了你的第一個問題,...
關於ActionScript3 0 的格式疑問。
onkeyuphandler 是標準的偵聽方式,雖然兩者的效果一樣,keyboardevent.key up 這種方式規範,也便於函式的編寫 事件的呼叫。假設你這個事件處理函式onkeyuphandler例子是這樣寫的 onkeyuphandler function onkeyuphandler e...
我30歲存了30萬,算不算多,30歲的男人存款30萬,沒車沒房,靠譜嗎
畫堂晨起 其實一點也不多,有些時候三十萬一瞬間就沒了,千萬不要覺得30歲存了30萬滿了,還差很遠,有思想才能走得更遠。努力奮鬥的句子 1 自己不努力,誰也幫不了你 你得有足夠的實力,你的原則和底線才會被人尊重。2 你要努力,你想要的,只能你自己給,別人給的,你要問問自己,拿得起麼。3 沒有特別幸運,...