1
我有一些AS3(我是新手!),唯一可以讓代碼工作的方式是非常直接的,並且一遍又一遍地重複它,所以我想知道是否有人能夠提供更優雅的解決方案嗎?AS3循環實例名稱+ i
我保證我會從中學習 - 我只是無法得到一個for循環工作,因爲當試圖使用for循環中的整數來構建名稱時動態影片剪輯未被它們的實例名稱識別( ?如果是有道理的)...
這裏是我的(大件)代碼,到目前爲止,我希望它滿足這50次不只是6我這裏有:
import flash.display.*
pic.addEventListener(MouseEvent.CLICK,addNewPoint);
var n:Number = 0;
function addNewPoint(e:MouseEvent):void {
n++;
pointNo.text = String(n);
// Create a new MovieClip
var nextPoint:MovieClip = new newPoint();
// Add the new MovieClip to the MainTimeline
// so that we can see it.
addChild(nextPoint);
nextPoint.name = "mc"+pointNo.text;
// Set the location of the new MovieClip
nextPoint.x = e.target.mouseX;
nextPoint.y = e.target.mouseY;
//Draw the line between points
if (n == 1) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFF0000);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
}else if (n == 2) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFF0000);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
joinPoints.graphics.lineTo(this.getChildByName("mc2").x, this.getChildByName("mc2").y);
}else if (n == 3) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFF0000);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
joinPoints.graphics.lineTo(this.getChildByName("mc2").x, this.getChildByName("mc2").y);
joinPoints.graphics.lineTo(this.getChildByName("mc3").x, this.getChildByName("mc3").y);
}else if (n == 4) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFF0000);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
joinPoints.graphics.lineTo(this.getChildByName("mc2").x, this.getChildByName("mc2").y);
joinPoints.graphics.lineTo(this.getChildByName("mc3").x, this.getChildByName("mc3").y);
joinPoints.graphics.lineTo(this.getChildByName("mc4").x, this.getChildByName("mc4").y);
}
else if (n == 5) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFF0000);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
joinPoints.graphics.lineTo(this.getChildByName("mc2").x, this.getChildByName("mc2").y);
joinPoints.graphics.lineTo(this.getChildByName("mc3").x, this.getChildByName("mc3").y);
joinPoints.graphics.lineTo(this.getChildByName("mc4").x, this.getChildByName("mc4").y);
joinPoints.graphics.lineTo(this.getChildByName("mc5").x, this.getChildByName("mc5").y);
}
else if (n == 6) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFF0000);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
joinPoints.graphics.lineTo(this.getChildByName("mc2").x, this.getChildByName("mc2").y);
joinPoints.graphics.lineTo(this.getChildByName("mc3").x, this.getChildByName("mc3").y);
joinPoints.graphics.lineTo(this.getChildByName("mc4").x, this.getChildByName("mc4").y);
joinPoints.graphics.lineTo(this.getChildByName("mc5").x, this.getChildByName("mc5").y);
joinPoints.graphics.lineTo(this.getChildByName("mc6").x, this.getChildByName("mc6").y);
}
}
pic.addEventListener(MouseEvent.CLICK, addNewPoint);
function fillDriveway(eventObject:MouseEvent) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
if (n == 3) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFFFFFF);
joinPoints.graphics.beginFill(0xFFFFFF, 0.2);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
joinPoints.graphics.lineTo(this.getChildByName("mc2").x, this.getChildByName("mc2").y);
joinPoints.graphics.lineTo(this.getChildByName("mc3").x, this.getChildByName("mc3").y);
this.getChildByName("mc1").visible=false;
this.getChildByName("mc2").visible=false;
this.getChildByName("mc3").visible=false;
}else if (n == 4) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFFFFFF);
joinPoints.graphics.beginFill(0xFFFFFF, 0.2);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
joinPoints.graphics.lineTo(this.getChildByName("mc2").x, this.getChildByName("mc2").y);
joinPoints.graphics.lineTo(this.getChildByName("mc3").x, this.getChildByName("mc3").y);
joinPoints.graphics.lineTo(this.getChildByName("mc4").x, this.getChildByName("mc4").y);
this.getChildByName("mc1").visible=false;
this.getChildByName("mc2").visible=false;
this.getChildByName("mc3").visible=false;
this.getChildByName("mc4").visible=false;
}else if (n == 5) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFFFFFF);
joinPoints.graphics.beginFill(0xFFFFFF, 0.2);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
joinPoints.graphics.lineTo(this.getChildByName("mc2").x, this.getChildByName("mc2").y);
joinPoints.graphics.lineTo(this.getChildByName("mc3").x, this.getChildByName("mc3").y);
joinPoints.graphics.lineTo(this.getChildByName("mc4").x, this.getChildByName("mc4").y);
joinPoints.graphics.lineTo(this.getChildByName("mc5").x, this.getChildByName("mc5").y);
this.getChildByName("mc1").visible=false;
this.getChildByName("mc2").visible=false;
this.getChildByName("mc3").visible=false;
this.getChildByName("mc4").visible=false;
this.getChildByName("mc5").visible=false;
}else if (n == 6) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFFFFFF);
joinPoints.graphics.beginFill(0xFFFFFF, 0.2);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
joinPoints.graphics.lineTo(this.getChildByName("mc2").x, this.getChildByName("mc2").y);
joinPoints.graphics.lineTo(this.getChildByName("mc3").x, this.getChildByName("mc3").y);
joinPoints.graphics.lineTo(this.getChildByName("mc4").x, this.getChildByName("mc4").y);
joinPoints.graphics.lineTo(this.getChildByName("mc5").x, this.getChildByName("mc5").y);
joinPoints.graphics.lineTo(this.getChildByName("mc6").x, this.getChildByName("mc6").y);
this.getChildByName("mc1").visible=false;
this.getChildByName("mc2").visible=false;
this.getChildByName("mc3").visible=false;
this.getChildByName("mc4").visible=false;
this.getChildByName("mc5").visible=false;
this.getChildByName("mc6").visible=false;
}
}
btn1.addEventListener(MouseEvent.CLICK, fillDriveway);
function undoit(eventObject:MouseEvent) {
if(n > 0) {
this.removeChild(this.getChildAt(this.numChildren -1));
this.removeChild(this.getChildAt(this.numChildren -1));
n--;
pointNo.text = String(n);
}
}
undo.addEventListener(MouseEvent.CLICK, undoit);
**編輯 - -------------------------------------------
感謝Eduardo - 完成代碼廁所KS,如:**
import flash.display.*
pic.addEventListener(MouseEvent.CLICK,addNewPoint);
var n:Number = 0;
function addNewPoint(e:MouseEvent):void {
n++;
pointNo.text = String(n);
// Create a new MovieClip
var nextPoint:MovieClip = new newPoint();
// Add the new MovieClip to the MainTimeline
// so that we can see it.
addChild(nextPoint);
nextPoint.name = "mc"+pointNo.text;
// Set the location of the new MovieClip
nextPoint.x = e.target.mouseX;
nextPoint.y = e.target.mouseY;
//Draw the line between points
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFF0000);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
for(var i:int=2; i<=n; ++i){
joinPoints.graphics.lineTo(this.getChildByName("mc"+i).x, this.getChildByName("mc"+i).y);
}
}
pic.addEventListener(MouseEvent.CLICK, addNewPoint);
function fillDriveway(eventObject:MouseEvent) {
var joinPoints:MovieClip = new MovieClip();
this.addChild(joinPoints);
joinPoints.graphics.lineStyle(0.5,0xFFFFFF);
joinPoints.graphics.beginFill(0xFFFFFF, 0.2);
joinPoints.graphics.moveTo(this.getChildByName("mc1").x, this.getChildByName("mc1").y);
for(var i:int=2; i<=n; ++i){
joinPoints.graphics.lineTo(this.getChildByName("mc"+i).x, this.getChildByName("mc"+i).y);
}
}
btn1.addEventListener(MouseEvent.CLICK, fillDriveway);
完美 - 謝謝!只是無法擺脫它... – bigtoothmedia 2012-04-18 08:19:01