Может, дойдёт так

Код AS3:
package com.zackmercury.example
{
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Point;
/**
* ...
* @author ZackMercury
*/
public class Bird extends Sprite
{
private static const GRAVITY:Number = 9.80665;//постоянная ускорения свободного падения на поверхности Земли
private var name:String = "Unnamed"; //имя птицы
private var mass:Number = 1; //масса птицы(kg)
private var velocity:Point = new Point(0, 0); //вектор скорости, стандартный компонент любой игры с даже простейшей физикой
private var netForce:Point = new Point(0, 0); //равнодействующая сил, из физики = сумме всех сил, воздействующих на предмет, пропорциональна ускорению [F] = Newtons(kg * m / (s^2))
private var sprite:Bitmap; //здесь будет храниться картинка птицы, в будущем она может передаваться в конструктор.
private var isAffectedByGravity = true;
public function Bird()
{
this.addEventListener(Event.ADDED_TO_STAGE, init); //дождёмся добавления на сцену
}
private function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);//и удалим слушатель добавления на сцену
//здесь наша птица создана
//устанавливаем равнодействующую в вектор гравитации(значит, больше ничего не будет воздействовать на птицу в текущей версии)
if(isAffectedByGravity) netForce.y -= GRAVITY * mass;
addChild(sprite);
addEventListener(Event.ENTER_FRAME, update);
}
private function update():void
{
//прибавляем к координатам птицы вектор скорости
x += velocity.x;
y += velocity.y;
//прибавляем к вектору скорости вектор ускорения(равнодействующую сил, делённую на массу, согласно второму закону Ньютона)
velocity.x += netForce.x / mass;
velocity.y += netForce.y / mass;
}
}
}
И, хоть приведённый выше код может использоваться в игре, его нужно дописать так, чтобы сколько бы птиц мы не создавали, мы могли бы управлять отдельно каждой снаружи класса(в том самом Document Class(Main)), чтобы сделать их независимыми друг от друга.
Для этого в конструктор передаются аргументы.

Что это даёт? А вот, что:

Код AS3:
package com.zackmercury.example
{
import flash.display.Sprite;
import flash.events.Event;
/**
* ...
* @author ZackMercury
*/
public class Main extends Sprite
{
public function Main()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
var jackTheBird:Bird = new Bird("Jack", 1, 0, 0, true);
var melanieTheBird:Bird = new Bird("Melanie", 5, 2, 2, true);
addChild(jackTheBird);
addChild(melanieTheBird);
}
}
}
Физическая реализация недоделана, ибо она считает кадры как секунды, но это вы и сами сможете исправить, если начнёте наконец читать книгу, а не листать. А, и ещё неплохо бы конвертировать систему координат в нужную, ибо пиксели тут считаются за метры, а это не то, что нам нужно, а также во флеше ось Y инвертирована в отличии от общепринятой декартовой системы. В остальном код птицы будет выглядеть примерно так.
Но опять же, это пока вы не дочитаете до наследования. Затем код придётся переписывать.