2014-03-05 69 views
-1

我開始學習ActionScript 3.0,我從Pascal獲得了一些基本的編程概念。小代碼示例

一個簡短的解釋,爲什麼我會問我要問什麼:我不相信學習槽理論 - 例如,我正在看一個視頻,你可以在PES 2013做的技巧(職業進化足球),並注意到我在視頻一直向前移動時一個接一個地忘了他們,只有在他們使用他們遊戲後,他們會在需要時自然發生。這適用於任何事情,每個人都可以通過直接體驗學習,一個嬰兒沒有語言,他不需要關於走路和說話的理論,僅僅是通過圍繞他人和他嘗試失敗的方法學習走路和交流(其中一個原因我認爲我們不需要在學校教授葡萄牙語語法,而是閱讀和說話)。

我有這種獲取代碼的方法,讀取,然後擦除這個和那行,看看會發生什麼。 Pascal在語法上非常直觀,我通過擦除,改變線條並觀察發生的事情學到了很多東西。經過一段時間之後,我纔會尋找理論,這對於時間標記來說是有意義的,而不是我腦中的一些隨機事實。

所以我在這裏要問一個很簡單的代碼示例^_ ^。」 - 類似的東西移到左/右,作爲按下兩個箭頭鍵方

我通讀的東西,無論和尋找我可以抓住並開始拉動的提示,我確實看過一個看起來很簡單的教程,但他沒有使用Flash Develop,這是我可以訪問的,所以我沒有繪製正方形的工具(Creating a 'Copter' style game in Flash - ActionScript 3

回答

0

左右移動方塊的代碼;)我做的很簡單,所以你可以學習它

package { 

    import flash.display.Sprite; 
    import flash.display.StageAlign; 
    import flash.display.StageScaleMode; 
    import flash.events.Event; 
    import flash.ui.Keyboard; 

    public class StackOverflow extends Sprite { 
     private var _keyListener:KeyListener; 
     private var _actor:Actor; 

     public function StackOverflow() { 
      addEventListener(Event.ADDED_TO_STAGE, onAdded); 
     } 

     private function onAdded(e:Event):void { 
      removeEventListener(Event.ADDED_TO_STAGE, onAdded); 

      stage.align = StageAlign.TOP_LEFT; 
      stage.scaleMode = StageScaleMode.NO_SCALE; 

      start(); 
     } 

     private function start():void { 
      _actor = new Actor(40, 0x323232); 
      _keyListener = new KeyListener(stage); 

      addChild(_actor); 

      _actor.x = stage.stageWidth * 0.5; 
      _actor.y = stage.stageHeight * 0.5; 

      //Main loop 
      addEventListener(Event.ENTER_FRAME, onEnterFrame); 
     } 

     private function onEnterFrame(e:Event):void { 
      if (_keyListener.isDown(Keyboard.RIGHT)) { 
       _actor.x += _actor.speed; 
      } 
      if (_keyListener.isDown(Keyboard.LEFT)) { 
       _actor.x -= _actor.speed; 
      } 
     } 
    } 
} 

import flash.display.Sprite; 
import flash.display.Stage; 
import flash.events.Event; 
import flash.events.KeyboardEvent; 

internal class KeyListener { 
    private var _keys:Object; 

    public function KeyListener(stage:Stage) { 
     _keys = {}; 

     stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed); 
     stage.addEventListener(KeyboardEvent.KEY_UP, onKeyReleased); 
     stage.addEventListener(Event.DEACTIVATE, onDeactivate); 
    } 

    public function isDown($keyCode:uint):Boolean { 
     return ($keyCode in _keys); 
    } 

    private function onDeactivate(e:Event):void { 
     _keys = {}; 
    } 

    private function onKeyPressed(e:KeyboardEvent):void { 
     _keys[e.keyCode] = true; 
    } 

    private function onKeyReleased(e:KeyboardEvent):void { 
     if (e.keyCode in _keys) { 
      delete _keys[e.keyCode]; 
     } 
    } 
} 

internal class Actor extends Sprite { 
    private var _speed:Number; 

    public function Actor(size:uint, color:uint, speed:Number = 4) { 
     _speed = speed; 

     this.graphics.beginFill(color); 
     this.graphics.drawRect(-size * 0.5, -size * 0.5, size, size); 
    } 

    public function get speed():Number { 
     return _speed; 
    } 
}