不管元件的位置在哪裡,只要透過事件來傳送砲台的方向即可。
假設砲台有個方向public變數Cannon.direction,可以面向left或right。
再假設砲彈的元件Cannonball是一個獨立的swf檔,從外部載入的,所以應該來用Loader物件來載入Cannonball。
<pre class="c" name="code">var loader:Loader = new Loader();
loader.load("cannonball.swf");
載入Cannonball之後,用LoaderInfo來監聽Event.COMPLETE事件。
<pre class="c" name="code">loader.contentLoaderInfo.addEventListener(Event.COMPLETE, initCannonball);
function initCannonball(e:Event):void
{
//取得載入的砲彈
var cannonball = e.target.content;
//設定子彈的方向
cannonball.setDirection(Connon.direction);
}
大概的原理就是這樣。
不過如果說你的砲彈不是獨立的swf檔,而是放在Libray中,由flash幫你用Actionscript先放置到影片中,那就更容易了。
<pre class="c" name="code">public class CannonBall extends Spirte
{
private _direction:String;
public function CannonBall(direction:String)
{
//將砲台的方向指給砲彈。這裡方便說明是用字串,實際上可能是遊
_direction = direction;
}
}
//生成砲彈的時候直接把方向給它
var cannonball = new CannonBall(Connon.direction);