[英]Syntax error - rightparen - ActionScript 3 - using an array
我正在创建一个自定义 Adobe Connect pod,在 AS3 中进行简单的拖放操作 - 目前可在 Adobe Connect 中使用,并且没有错误。 不过,它不适用于 SyncConnector 元素,这正是我苦苦挣扎的地方。
我在别处找到了一篇文章,建议将我的每个拖放项用作数组。 我在代码的顶部设置了一个数组,然后我有我的拖/放代码,然后是我最后的同步部分。 我收到“在点之前期望右括号”的语法错误,这对我来说 - 令人困惑 - 因为我对 AS3 非常陌生。
我真的很感激有人向我展示我需要的正确代码,因为我不完全理解术语。 我确实需要为我详细说明。 下面的完整代码,如果这不是一个简单的解决方案,很乐意为某人支付时间:
import com.adobe.sync.components.SyncConnector;
import com.adobe.sync.events.SyncSwfEvent;
var connector:SyncConnector;
function init(c:SyncConnector):void
{
connector=c;
}
// Keep stage reference here.
var draggedStage:Stage;
// Keep dragged item reference here.
var draggedItem:InteractiveObject;
// The list of items to drag.
var aList:Array =
[
AirBP,PetroChem,LiquifiedGas,Exploration,Plastic,
BiofuelsFarm,Trading,Electricity,Development,
Production,Distribution,Lubes,Retail,Shipping,
Refining,BPMarine,Terminal,Terminal2,Pipeline,
Pipeline2,SugarCane,WindPower
];
// Subscribe all items for MOUSE_DOWN event.
for each (draggedItem in aList)
draggedItem.addEventListener(MouseEvent.MOUSE_DOWN, onDrag);
function onDrag(e:MouseEvent):void
{
// Get the source of event.
draggedItem = e.target as InteractiveObject;
draggedItem.startDrag();
// Hook the stage events for MOUSE_UP event. You can skip using "draggedStage"
// if you are sure that stage reference is always available.
draggedStage = dtaggedItem.stage;
draggedStage.addEventListener(MouseEvent.MOUSE_UP, onDrop);
}
function onDrop(e:MouseEvent):void
{
// Stopp dragging things.
draggedItem.stopDrag();
// Unhook stage for it is no longer needed.
draggedStage.removeEventListener(MouseEvent.MOUSE_UP, onDrop);
// Forget the references.
draggedItem = null;
draggedStage = null;
}
connector.dispatchSyncMessage("dragdrop", myObj, true);
connector.addEventListener(SyncSwfEvent.SYNC_MSG_RCVD, mouseListen);
function mouseListen(e.SyncSwfEvent):void
{
if (e.data.msgNm == "dragdrop") {
myObj = e.data.msgVal as Array;
}
}
这个建议完全正确。 使您的代码更简单,因为很容易在一大块看起来很相似的代码行中遗漏语法错误。 所有不可读的监听器都应该替换为:
// Keep stage reference here.
var draggedStage:Stage;
// Keep dragged item reference here.
var draggedItem:InteractiveObject;
// The list of items to drag.
var aList:Array =
[
AirBP,PetroChem,LiquifiedGas,Exploration,Plastic,
BiofuelsFarm,Trading,Electricity,Development,
Production,Distribution,Lubes,Retail,Shipping,
Refining,BPMarine,Terminal,Terminal2,Pipeline,
Pipeline2,SugarCane,WindPower
];
// Subscribe all items for MOUSE_DOWN event.
for each (draggedItem in aList)
draggedItem.addEventListener(MouseEvent.MOUSE_DOWN, onDrag);
function onDrag(e:MouseEvent):void
{
// Get the source of event.
draggedItem = e.target as InteractiveObject;
draggedItem.startDrag();
// Hook the stage events for MOUSE_UP event. You can skip using "draggedStage"
// if you are sure that stage reference is always available.
draggedStage = draggedItem.stage;
draggedStage.addEventListener(MouseEvent.MOUSE_UP, onDrop);
}
function onDrop(e:MouseEvent):void
{
// Stopp dragging things.
draggedItem.stopDrag();
// Unhook stage for it is no longer needed.
draggedStage.removeEventListener(MouseEvent.MOUSE_UP, onDrop);
// Forget the references.
draggedItem = null;
draggedStage = null;
}
我的另一个拖放相关答案在这里: https : //stackoverflow.com/a/42542667/4687633
此错误通常意味着存在语法错误。 请更换
function mouseListen(e.SyncSwfEvent):void
到
function mouseListen(e:SyncSwfEvent):void
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.