繁体   English   中英

语法错误 - rightparen - ActionScript 3 - 使用数组

[英]Syntax error - rightparen - ActionScript 3 - using an array

我正在创建一个自定义 Adob​​e Connect pod,在 AS3 中进行简单的拖放操作 - 目前可在 Adob​​e 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM