sampleadd.as
来自「《Flash AS3殿堂之路》光盘源码 学习ActionScript 3.0」· AS 代码 · 共 67 行
AS
67 行
package org.kingda.book.display
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class SampleAdd extends Sprite
{
private var conA:Sprite;
private var conB:Sprite;
private var buttonA:RectSprite;
private var buttonB:RectSprite;
private var buttonX:RectSprite;
private var star:StarShape;
public function SampleAdd() {
star = new StarShape();
star.y = 100; //相对于父容器的坐标
conA = new Sprite();
conB = new Sprite();
conB.x = 200;
addChild(conA);
addChild(conB);
buttonA = new RectSprite("A", 0xff9900);
buttonB = new RectSprite("B", 0x669900);
buttonX = new RectSprite("X", 0x669900);
//对按钮位置布局
buttonA.y = 100;
buttonB.x = 150;
buttonB.y = 100;
buttonX.y = 160;
buttonX.x = 50;
addChild(buttonA);
addChild(buttonB);
addChild(buttonX);
//添加鼠标单击事件的侦听
buttonA.addEventListener(MouseEvent.CLICK, addStarInContainer);
buttonB.addEventListener(MouseEvent.CLICK, addStarInContainer);
buttonX.addEventListener(MouseEvent.CLICK, removeStar);
trace(this.contains(star));
//输出:false。现在star还没有加入显示列表。点击按钮后才会加入。
}
//根据事件的发出者,确定那个容器添加星星
private function addStarInContainer(evt:MouseEvent):void {
if(evt.currentTarget == buttonA) {
conA.addChild(star);
trace ("容器A加入了星星");
}else {
conB.addChild(star);
trace ("容器B加入了星星");
}
}
//移除星星
private function removeStar(evt:MouseEvent):void {
//使用contains判断
if (conA.contains(star)) {
conA.removeChild(star);
trace ("容器A移除了星星");
} else if (conB.contains(star)) {
conB.removeChild(star);
trace ("容器B移除了星星");
} else {
trace ("星星已经不存在,不需要再移除");
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?