編輯: 哇,我沒有意識到我做了這麼多事情如此可怕的錯誤。這是我自己寫的第一個代碼,沒有使用學校提供的東西。猜猜在經過這麼幾次課後,我試圖咬掉更多的東西。錯誤#1034與孩子
我在Google搜索答案之後得到了大部分內容,然後複製了我認爲需要的部分代碼(強調'想法')。
還有一種方法可以「保存」代碼嗎?或者最好是放棄它並重新開始?無論哪種方式,那麼做正確的方法是什麼?
此外,我會問我的老師,如果我可以。但是我們再也沒有和他一起上課,所以這個人已經不在了(或者至少沒有迴應我的電子郵件)。我正在爲自己的另一個學校任務做這件事。所以這就是我轉向互聯網的原因。
感謝您解釋所有你做的。我很感激你花時間這樣做:)現在
,在回答大家的一些問題,並提出新的:
只有第一個符號被稱爲符號1,其他的都'真實'的名字。當我開始這個項目並保持這種方式時,我忘了改變它,因爲我確切知道它是什麼,因爲它是唯一一個這樣叫的。
..你知道什麼樣的名字出來,如果櫃檯等於5? 「HalfCircle15」。 是的,我意識到這一點。現在我明白這一點,同意這不是一個很好的方法來寫下來。在命名我的HalfCirlce1-4時沒有充分考慮它。
你認爲它有什麼作用? 好的,讓我試着更加清楚地解釋它: 當您拖放副本時,您不能再移動/選擇它。我希望用戶能夠選擇它,以便他可以再次拖放多次,如他所願。那麼,我認爲這意味着我必須將eventListeners添加到所有我製作的副本中?這是我在這裏想要做的。 另外,感謝您的錯誤解釋。 所以,這是更喜歡它?:
function makeListeners(copy:DisplayObject):void
{
var i = this.numChildren;
i.addEventListener(MouseEvent.CLICK, moveCopy);
}
我也感動了makeListeners打電話到我做副本的地方。所以它應該只運行一次,當你製作副本時,對吧?
爲什麼你使用索引3作爲'最新的孩子'索引?這沒有什麼意義。 我搜索瞭如何做到這一點,我相信它告訴我'索引'是你想添加孩子的'層'(缺乏更好的詞)?我將它添加到3,以便它們超過了我的其他一些圖像以及其他一些圖像。它似乎是這樣工作的,儘管現在我也開始質疑這一點。
下面是我現在的(刪除其他數字,以便更容易查看代碼)。這給了我一個新的錯誤 TypeError:錯誤#1006:值是geen functie。 at rondje1/makeListeners() at rondje1/dragRondje(): 所以我意識到這是不對的。但是這至少比以前更正確嗎?
import flash.display.*;
import flash.events.MouseEvent;
import flash.ui.Mouse;
var counter=1;
var copy;
//Copy dan drag and drop Rondje
buttonRondje.addEventListener(MouseEvent.CLICK, dragRondje);
function dragRondje(event:MouseEvent):void
{
this["rondje"+ (counter)]=new block;
this["rondje"+(counter)].x=mouseX-45;
this["rondje"+ (counter)].y=mouseY-45;
copy = addChildAt(this["rondje"+(counter)], 3);
counter++;
copy.startDrag();
makeListeners(copy);
}
//DROP
stage.addEventListener(MouseEvent.MOUSE_UP, dropEverything);
function dropEverything(event:MouseEvent):void
{
stopDrag();
}
//Remove latest child
buttonRemoveChild.addEventListener(MouseEvent.CLICK, removeNewestChild);
function removeNewestChild(event:MouseEvent):void
{
var i = 0;
i = this.numChildren;
if (i > 10)
{
this.removeChildAt(3);
}
}
function makeListeners(copy:DisplayObject):void
{
var i = this.numChildren;
i.addEventListener(MouseEvent.CLICK, moveCopy);
}
function moveCopy(event:MouseEvent):void
{
trace('move copy!');
}
ORINIAL POST 我做了一個學校項目有點「拖放」的事情,但我已經遇到了一個問題。
現在我已經設置,當你點擊一個按鈕,你開始從庫中拖動一個符號的副本。當你點擊應用程序中的某個地方時,你會再次丟棄它。 我遇到的問題是允許用戶選擇此副本再次拖動它的代碼。
它給我這個錯誤:
TypeError: Error # 1034: Type Coercion failed: can not convert block @2a308041 to flash.events.Event. at rondje1/dropEverything()
這裏就是我做的複製代碼:
//Copy dan drag and drop Rondje
buttonRondje.addEventListener(MouseEvent.CLICK, dragRondje);
function dragRondje(event:MouseEvent):void
{
this["rondje"+ (counter)]=new block;
this["rondje"+(counter)].x=mouseX-45;
this["rondje"+ (counter)].y=mouseY-45;
copy = addChildAt(this["rondje"+(counter)], 3);
counter++;
copy.startDrag();
}
代碼哪裏掉下來,並給事件監聽器添加到副本:
//DROP
stage.addEventListener(MouseEvent.MOUSE_UP, dropEverything);
function dropEverything(event:MouseEvent):void
{
stopDrag();
makeListeners(copy);
}
添加聽衆的代碼:
function makeListeners(e:Event):void
{
var i = 0;
i = this.numChildren;
for (i = this.numChildren;i<10;i++)
{
this.addEventListener(MouseEvent.CLICK, moveCopy);
}
}
function moveCopy(event:MouseEvent):void
{
trace('move copy!');
}
符號設置像這樣:
- 名稱:符號1
- 類型:影片剪輯
- 爲ActionScript導出 - >幀經過
- 出口1 - >經過
- 類別:塊
- 基本類:flash.display.MovieClip
我真的不明白爲什麼我在這裏得到一個錯誤:S 希望這裏有人能幫助我。我會永遠gratefull。 由於提前, XX
PS:這裏是整個代碼:
import flash.display.*;
import flash.events.MouseEvent;
import flash.ui.Mouse;
var counter=1;
var copy;
//Copy dan drag and drop Rondje
buttonRondje.addEventListener(MouseEvent.CLICK, dragRondje);
function dragRondje(event:MouseEvent):void
{
this["rondje"+ (counter)]=new block;
this["rondje"+(counter)].x=mouseX-45;
this["rondje"+ (counter)].y=mouseY-45;
copy = addChildAt(this["rondje"+(counter)], 3);
counter++;
copy.startDrag();
}
//Copy dan drag and drop HalfCircle1
buttonHalfCircle1.addEventListener(MouseEvent.CLICK, dragHalfCircle1);
function dragHalfCircle1(event:MouseEvent):void
{
this["HalfCircle1"+(counter)]=new HalfCircle1;
this["HalfCircle1"+(counter)].x=mouseX - 45;
this["HalfCircle1"+(counter)].y=mouseY - 55;
copy = addChildAt(this["HalfCircle1"+(counter)], 3);
counter++;
copy.startDrag();
}
//Copy dan drag and drop HalfCircle2
buttonHalfCircle2.addEventListener(MouseEvent.CLICK, dragHalfCircle2);
function dragHalfCircle2(event:MouseEvent):void
{
this["HalfCircle2"+(counter)]=new HalfCircle2;
this["HalfCircle2"+(counter)].x=mouseX - 45;
this["HalfCircle2"+(counter)].y=mouseY - 55;
copy = addChildAt(this["HalfCircle2"+(counter)], 3);
counter++;
copy.startDrag();
}
//Copy dan drag and drop HalfCircle3
buttonHalfCircle3.addEventListener(MouseEvent.CLICK, dragHalfCircle3);
function dragHalfCircle3(event:MouseEvent):void
{
this["HalfCircle3"+(counter)]=new HalfCircle3;
this["HalfCircle3"+(counter)].x=mouseX - 45;
this["HalfCircle3"+(counter)].y=mouseY - 5;
copy = addChildAt(this["HalfCircle3"+(counter)], 3);
counter++;
copy.startDrag();
}
//Copy dan drag and drop HalfCircle4
buttonHalfCircle4.addEventListener(MouseEvent.CLICK, dragHalfCircle4);
function dragHalfCircle4(event:MouseEvent):void
{
this["HalfCircle4"+(counter)]=new HalfCircle4;
this["HalfCircle4"+(counter)].x=mouseX - 45;
this["HalfCircle4"+(counter)].y=mouseY - 5;
copy = addChildAt(this["HalfCircle4"+(counter)], 3);
counter++;
copy.startDrag();
}
//Copy dan drag and drop Streep
buttonStreep.addEventListener(MouseEvent.CLICK, dragStreep);
function dragStreep(event:MouseEvent):void
{
this["streep"+(counter)]=new Streep;
this["streep"+(counter)].x=mouseX - 2;
this["streep"+(counter)].y=mouseY - 5;
copy = addChildAt(this["streep"+(counter)], 3);
counter++;
copy.startDrag();
}
//DROP
stage.addEventListener(MouseEvent.MOUSE_UP, dropEverything);
function dropEverything(event:MouseEvent):void
{
stopDrag();
makeListeners(copy);
}
//Remove latest child
buttonRemoveChild.addEventListener(MouseEvent.CLICK, removeNewestChild);
function removeNewestChild(event:MouseEvent):void
{
var i = 0;
i = this.numChildren;
if (i > 10)
{
this.removeChildAt(3);
}
}
function makeListeners(e:Event):void
{
var i = 0;
i = this.numChildren;
for (i = this.numChildren;i<10;i++)
{
this.addEventListener(MouseEvent.CLICK, moveCopy);
}
}
function moveCopy(event:MouseEvent):void
{
trace('move copy!');
}
你爲什麼在指數3添加子?應該是xxx.addChild(child,xxx.numChildren); –