Flash 动作脚本 3.0 错误 1120
Flash Action Script 3.0 error 1120
所以我已经到了不得不问一个问题的地步,我已经翻了 3 页 google 几个小时了。希望大家帮帮我。
我很确定我已经定义了 var UsedSlot,但它显示错误 1120。
我已经试过把它放在不同的线路上,比如在定时器之前和之后。我只是一个新手,我的学期项目需要这个。
这是错误
场景 1,图层 'Player',帧 1,第 55 行 1120:访问未定义的 属性 UsedSlot。
场景 1,图层 'Player',帧 1,第 62 行 1120:访问未定义的 属性 UsedSlot。
场景 1,图层 'Player',帧 1,第 90 行 1120:访问未定义的 属性 UsedSlot。
场景 1,图层 'Player',帧 1,第 91 行 1120:访问未定义的 属性 UsedSlot。
stop();
import flash.display.MovieClip;
import flash.events.Event;
import fl.motion.MotionEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
//initialize objects
var PlayerItems:Array = [new Items_Player_Cheese(),
new Items_Player_Cheese(),
new Items_Player_Cheese(),
new Items_Player_Cheese(),
new Items_Player_Cheese(),];
//hard code test ***working***
/*PlayerItems[0].x = Guide_Test_Start.x;
PlayerItems[0].y = Guide_Test_Start.y;
stage.addChild(PlayerItems[0]);*/
///////////////////
var j:int;
var SlotUsed:Array = new Array(PlayerItems.length);
for(j = 0 ; j < SlotUsed.length; j++)
{
SlotUsed[j] = -1
trace(SlotUsed[j]);
}
for(j = 0; j < PlayerItems.length; j++)
{
PlayerItems[j].x = Guide_Test_Start.x;
PlayerItems[j].y = Guide_Test_Start.y;
}
var PlaceOccupied:Array = [false,false,false,false,false];
//check if a place is unoccupied
var myTimer:Timer = new Timer(3000);
myTimer.addEventListener(TimerEvent.TIMER, CheckVacancy);
myTimer.start();
//choose a starting location
var CVSync:int;
function CheckVacancy(e:TimerEvent)
{
for(CVSync = 0 ; CVSync < 5; CVSync++)
{
if(PlaceOccupied[CVSync] == false)
{
// Put an object
var ItemIndex = randomRange(0,PlayerItems.length - 1);
while(UsedSlot[ItemIndex] > -1)
ItemIndex = randomRange(0,PlayerItems.length - 1);
trace("Item["+ItemIndex+"] placed on ["+CVSync+"]");
PlayerItems[ItemIndex].x = StartGuide[CVSync].x;
PlayerItems[ItemIndex].y = StartGuide[CVSync].y;
UsedSlot[j] = ItemIndex;
PlaceOccupied[CVSync] = true;
trace("Vacant Slot Filled" + getTimer() + " ms");
break;
}
}
}
//Instantiate the objects
for(j = 0; j < PlayerItems.length; j++)
{
trace("Adding Player Items");
stage.addChild(PlayerItems[j]);
}
//Add Listener To determine A hit
for(j = 0; j < PlayerItems.length; j++)
{
PlayerItems[j].addEventListener(MouseEvent.MOUSE_UP, MUp);
}
function MUp(e:MouseEvent):void
{
for(j = 0; j < PlayerItems.length; j++)
{
if(PlayerItems[j].hitTestObject(MyItem[0]))
{
CVSync[UsedSlot[j]] = false;
UsedSlot[j] = -1;
PlayerItems[j].x = -100;
trace("Point by: " + MyItem[0].name.toString());
break;
}
}
}
/*cheese.addEventListener(MouseEvent.MOUSE_UP, MUp);
function MUp(e:MouseEvent):void{
if(cheese.hitTestObject(MyItem[0]))
{
trace("Cheese Eaten by: " + MyItem[0].name.toString());
cheese.x = Guide_Test_Start.x;
cheese.y = Guide_Test_Start.y;
}
}*/
function randomRange(minNum:Number, maxNum:Number):Number
{
return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
}
I'm pretty sure i've defined var UsedSlot
不,你不知道,这就是问题所在。
名称 UsedSlot
在您发布的代码段中出现了 4 次,这些行导致了 4 次错误。
None 其中违背了变量。
然而你确实定义了另一个变量:
var SlotUsed:Array
在您的代码中。
如果不清楚:这是两个不同的变量。仅仅因为您在代码中的某处定义了一个变量 SlotUsed
并不意味着您可以通过其他名称访问它,例如 UsedSlot
。
这是区分大小写的,这意味着 SlotUsed
和 slotUsed
不被认为是相同的。
作为建议,"being pretty sure" 在查找此类问题时通常毫无价值。相反,通过找到声明来证明它。如果您找不到它,它可能不存在。毕竟编译器是找不到的
变量名以小写字母开头是一种常见的约定,这有助于将它们与 类(或接口...)的名称区分开来。
虽然您可以选择按照自己的意愿编写代码,但如果您遵守通用约定,其他人会更容易阅读您的代码,从而简化帮助您的任务。 =)
所以我已经到了不得不问一个问题的地步,我已经翻了 3 页 google 几个小时了。希望大家帮帮我。
我很确定我已经定义了 var UsedSlot,但它显示错误 1120。 我已经试过把它放在不同的线路上,比如在定时器之前和之后。我只是一个新手,我的学期项目需要这个。
这是错误
场景 1,图层 'Player',帧 1,第 55 行 1120:访问未定义的 属性 UsedSlot。
场景 1,图层 'Player',帧 1,第 62 行 1120:访问未定义的 属性 UsedSlot。
场景 1,图层 'Player',帧 1,第 90 行 1120:访问未定义的 属性 UsedSlot。
场景 1,图层 'Player',帧 1,第 91 行 1120:访问未定义的 属性 UsedSlot。
stop();
import flash.display.MovieClip;
import flash.events.Event;
import fl.motion.MotionEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
//initialize objects
var PlayerItems:Array = [new Items_Player_Cheese(),
new Items_Player_Cheese(),
new Items_Player_Cheese(),
new Items_Player_Cheese(),
new Items_Player_Cheese(),];
//hard code test ***working***
/*PlayerItems[0].x = Guide_Test_Start.x;
PlayerItems[0].y = Guide_Test_Start.y;
stage.addChild(PlayerItems[0]);*/
///////////////////
var j:int;
var SlotUsed:Array = new Array(PlayerItems.length);
for(j = 0 ; j < SlotUsed.length; j++)
{
SlotUsed[j] = -1
trace(SlotUsed[j]);
}
for(j = 0; j < PlayerItems.length; j++)
{
PlayerItems[j].x = Guide_Test_Start.x;
PlayerItems[j].y = Guide_Test_Start.y;
}
var PlaceOccupied:Array = [false,false,false,false,false];
//check if a place is unoccupied
var myTimer:Timer = new Timer(3000);
myTimer.addEventListener(TimerEvent.TIMER, CheckVacancy);
myTimer.start();
//choose a starting location
var CVSync:int;
function CheckVacancy(e:TimerEvent)
{
for(CVSync = 0 ; CVSync < 5; CVSync++)
{
if(PlaceOccupied[CVSync] == false)
{
// Put an object
var ItemIndex = randomRange(0,PlayerItems.length - 1);
while(UsedSlot[ItemIndex] > -1)
ItemIndex = randomRange(0,PlayerItems.length - 1);
trace("Item["+ItemIndex+"] placed on ["+CVSync+"]");
PlayerItems[ItemIndex].x = StartGuide[CVSync].x;
PlayerItems[ItemIndex].y = StartGuide[CVSync].y;
UsedSlot[j] = ItemIndex;
PlaceOccupied[CVSync] = true;
trace("Vacant Slot Filled" + getTimer() + " ms");
break;
}
}
}
//Instantiate the objects
for(j = 0; j < PlayerItems.length; j++)
{
trace("Adding Player Items");
stage.addChild(PlayerItems[j]);
}
//Add Listener To determine A hit
for(j = 0; j < PlayerItems.length; j++)
{
PlayerItems[j].addEventListener(MouseEvent.MOUSE_UP, MUp);
}
function MUp(e:MouseEvent):void
{
for(j = 0; j < PlayerItems.length; j++)
{
if(PlayerItems[j].hitTestObject(MyItem[0]))
{
CVSync[UsedSlot[j]] = false;
UsedSlot[j] = -1;
PlayerItems[j].x = -100;
trace("Point by: " + MyItem[0].name.toString());
break;
}
}
}
/*cheese.addEventListener(MouseEvent.MOUSE_UP, MUp);
function MUp(e:MouseEvent):void{
if(cheese.hitTestObject(MyItem[0]))
{
trace("Cheese Eaten by: " + MyItem[0].name.toString());
cheese.x = Guide_Test_Start.x;
cheese.y = Guide_Test_Start.y;
}
}*/
function randomRange(minNum:Number, maxNum:Number):Number
{
return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
}
I'm pretty sure i've defined var UsedSlot
不,你不知道,这就是问题所在。
名称 UsedSlot
在您发布的代码段中出现了 4 次,这些行导致了 4 次错误。
None 其中违背了变量。
然而你确实定义了另一个变量:
var SlotUsed:Array
在您的代码中。
如果不清楚:这是两个不同的变量。仅仅因为您在代码中的某处定义了一个变量 SlotUsed
并不意味着您可以通过其他名称访问它,例如 UsedSlot
。
这是区分大小写的,这意味着 SlotUsed
和 slotUsed
不被认为是相同的。
作为建议,"being pretty sure" 在查找此类问题时通常毫无价值。相反,通过找到声明来证明它。如果您找不到它,它可能不存在。毕竟编译器是找不到的
变量名以小写字母开头是一种常见的约定,这有助于将它们与 类(或接口...)的名称区分开来。 虽然您可以选择按照自己的意愿编写代码,但如果您遵守通用约定,其他人会更容易阅读您的代码,从而简化帮助您的任务。 =)