だから私はhtmlキャンバスで始めたゲームをas3のフラッシュに移植しています。
このゲームにはタンクがあります。この戦車には車体と砲塔があります。360 度回転し、前後に移動し、砲塔を 360 度回転させることができます。戦車のベースと砲塔は別のアニメーション イメージです。
タンクのムービークリップとタレットのムービークリップがあるように設定しました。そして、タンクのムービークリップにコードを追加して、このようにコンストラクター部分でそれ自体のタレットを作成します。
turret= new turretMovieClip();
addChild(turret)
そのため、タンク ムービークリップ クラスには、タレット ムービークリップのインスタンスを保持するこのタレット変数が含まれるようになりました。また、タンク ムービークリップのコンストラクターには、自分自身に影を与えるコードがあります。
var dropShadow:DropShadowFilter = new DropShadowFilter();
dropShadow.distance = 5;
dropShadow.angle = 45;
dropShadow.color = 0x000000;
etc....
this.filters = new Array(dropShadow);
しかし、これは奇妙な部分です。これは戦車のムービークリップのコードであるため、上記のコードは戦車の周りに影を付けるだけだと思っていました。しかし、それは戦車と砲塔の周りに影を落としました. 砲塔を追加すると、戦車のムービークリップが変わったか何か! 私はこれが起こることを望んでいませんでした。戦車には独自の影があり、砲塔には独自の影が必要です。
問題を説明するために作成した画像を次に示します。 http://i.stack.imgur.com/EJuf3.jpg
図 #1 は私の古いゲームのものです。影はタンクと地面に正しく投影されます。図 #2 は、上記のコードが何をしたかを示しています。戦車と砲塔に影を付けましたが、地面にしか影を落としませんでした。私が間違っていることを知っている人はいますか?これは、マスター タンク クラスを作成してタンク ムービークリップを作成し、タレット ムービークリップを作成することで解決できると思います。それは私がこれを行うことになっている方法ですか?