0
我是學生我有一個最終項目希望在兩天後交付它。 我正在做一個拖放遊戲,我看了一個教程來做到這一點。 但結束編碼後,我面臨一個奇怪的錯誤! 我檢查過我的代碼與本教程中的代碼相同。
這是調試錯誤報告:
Attempting to launch and connect to Player using URL E:\FL\ActionScript\Drag and Drop Project\DragAndDrop.swf
[SWF] E:\FL\ActionScript\Drag and Drop Project\DragAndDrop.swf - 87403 bytes after decompression
TypeError: Error #1034: Type Coercion failed: cannot convert paper1$ to DragDrop.
at Targets()[E:\FL\ActionScript\Drag and Drop Project\Targets.as:23]
我.fla
文件是包含12個對象拖動和另一個12個對象就可以了下降。
這裏的想法是,當放置目標上的對象時,對象將變爲不可見並且目標變爲可見(在.fla
文件target alpha = 0
中)。
我做了兩個類:
DragDrop.as:對,我要拖動的對象。 Targets.as:針對我要放置對象的目標。
注意:匹配功能是動畫「GameOver」MovieClip動畫完成遊戲時。
DragDrop.as:
package
{
import flash.display.*;
import flash.events.*;
public class DragDrop extends Sprite
{
var origX:Number;
var origY:Number;
var target:DisplayObject;
public function DragDrop()
{
// constructor code
origX = x;
origY = y;
addEventListener(MouseEvent.MOUSE_DOWN, drag);
buttonMode = true;
}
function drag(evt:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_UP, drop);
startDrag();
parent.addChild(this);
}
function drop(evt:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_UP, drop);
stopDrag();
if(hitTestObject(target))
{
visible = false;
target.alpha = 1;
Object(parent).match();
}
x = origX;
y = origY;
}
}
}
Targets.as:
package
{
import flash.display.*;
import flash.events.*;
public class Targets extends MovieClip
{
var dragdrops:Array;
var numOfMatches:uint = 0;
var speed:Number = 25;
public function Targets()
{
// constructor code
dragdrops = [paper1,paper2,paper3,paper4,paper5,paper6,
paper7,paper8,paper9,paper10,paper11,paper12,];
var currentObject:DragDrop;
for(var i:uint = 0; i < dragdrops.length; i++)
{
currentObject = dragdrops[i];
currentObject.target = getChildByName(currentObject.name + "_target");
}
}
public function match():void
{
numOfMatches++;
if(numOfMatches == dragdrops.length)
{
win.addEventListener(Event.ENTER_FRAME, winGame);
}
}
function winGame(event:Event):void
{
win.y -= speed;
if(win.y <= 0)
{
win.y = 0;
win.removeEventListener(Event.ENTER_FRAME, winGame);
win.addEventListener(MouseEvent.CLICK, clickWin);
}
}
function clickWin(event:MouseEvent):void
{
win.removeEventListener(MouseEvent.CLICK, clickWin);
win.addEventListener(Event.ENTER_FRAME, animateDown);
var currentObject:DragDrop;
for(var i:uint = 0; i < dragdrops.length; i++)
{
currentObject = dragdrops[i];
getChildByName(currentObject.name + "_target").alpha = 0;
currentObject.visible = true;
}
numOfMatches = 0;
addChild(win);
}
function animateDown(event:Event):void
{
win.y += speed;
if(win.y >= stage.stageHeight)
{
win.y = stage.stageHeight;
win.removeEventListener(Event.ENTER_FRAME, animateDown);
}
}
}
}
...謝謝
OMG!不,似乎我忘記了! 我花了超過3天的這個項目..... 添加實例名稱後的對象顯示一個新的錯誤: E:\ FL \ ActionScript \拖放Project \ Targets.as,行11 \t 1046:未找到類型或不是編譯時常量:paper1。 這個錯誤是繼續paper2 ....到paper12! 請下載下面的.fla文件,如果我無法修復該項目,我將陷入災難:'( 鏈接:https://www.dropbox.com/s/8mdg5w17vvryzso/Drag%20and%20Drop %20Project.rar – Anas
恩,編譯器仍然無法識別「什麼是paper1」。請仔細檢查拼寫和類名,並確保您在代碼中正確地引用了對象。 我正在度假,我不想現在沒有任何訪問Adobe工具的幫助,對不起,我無法直接查看fla文件來幫助您。 – enigmatoP
感謝您的幫助:DI欣賞 – Anas