AS 3.0の実例は新しいイベントメカニズムとaddChildの運用を熟知することを学ぶ。
まず声明します:私の大料理の鳥はひとつ、AS 3に接触したばかりで、多くの理念はまだ注ぎ込まれていません。これらのcaseはネット上からダウンしていますが、解説は英語のため、不利です。レベルが限られています。ミスは避けられません。エビやエビ、鳥の指正を歓迎します。次に本題に入ります。ケース1:新しい事件のメカニズムとaddChildの運用説明を熟知しています。小人をすべり台にドラッグして、スケートボードをドラッグすると、小人はもうすべり台とくっつきました。プレゼンテーション:http://www.live-my-life-with-yuyi.com/as3_cases/changeing_parents/コード:
boarder_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag);
boarder_mc.addEventListener(MouseEvent.MOUSE_UP, drop);
red_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag);
red_mc.addEventListener(MouseEvent.MOUSE_UP, drop);
blue_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag);
blue_mc.addEventListener(MouseEvent.MOUSE_UP, drop);
AS 3は新しい傍受機構を採用しています。そして各mcのマウスに対して弾みを押しても同じ関数が使用されていることに気づきました。これは関数でイベントの発生者を判断して対応する処理を行う必要があります。
function drag(event:MouseEvent):void
{
if(event.target.name == "boarder_mc")
{
addChild(boarder_mc);
event.target.startDrag(true);
boarder_mc.x = mouseX;
boarder_mc.y = mouseY;
}
else
{
event.target.startDrag();
}
}
はevent.target.nameを通じて事件発生の対象名を取得して、AS 3にrootがなくて、addChildはあるmcを舞台の上に運んだことに相当して、実はTimeline 0.addChild(mc)で、同時にこのmcが舞台の一番上の階にあることを保証します。event.targetを通じて事件の発生の対象を獲得して次にdrop関数
function drop(event:MouseEvent):void
{
event.target.stopDrag();
if(boarder_mc.hitTestObject(red_mc))
{
red_mc.addChild(boarder_mc);
boarder_mc.x = 0;
boarder_mc.y = 0;
}
else if(boarder_mc.hitTestObject(blue_mc))
{
blue_mc.addChild(boarder_mc);
boarder_mc.x = 0;
boarder_mc.y = 0;
}
}
を見にきます。マウスが弾む時、何でもいいです。まずドラッグを止めます。もし小人とスケートボードが重なり合う領域があるなら、小人をスケートボードの中に入れます。スケートボードはcontainerのようです。mcがred_になりましたmcのchildが、boarderを_mcのx座標とy座標をクリアするのは小人をスケートボードの正しい位置に置くためです。もし小人がもうスケートボードのchildになったら、もう一度スライドをドラッグする時、もう一度addChildを実行しました。mc);だからスケートボードの父はまた舞台になりました。全体のケース1の分析はこれで終わります。知識点は多くないです。主にAS 3の文法に詳しいです。ダウンロード