标签: actionscript-2

在AS3中最容易实现onReleaseOutside?

我是一个长期的ActionScript 2用户,现在开始使用ActionScript 3.我缺少的一件事是复制AS2的MovieClip.onReleaseOutside功能的简单方法.几乎总是有必要实现这个事件,否则你会得到一些有趣的错误,比如flash认为你的鼠标已经关闭了.

根据AS2到AS3迁移指南,我应该使用flash.display.InteractiveObject.setCapture()它,但据我所知,它不存在.我猜这个文件已经过时或不正确.我在网上发现了一些关于如何复制这个功能的帖子,但是他们有自己的问题:

  • 即使没有相应的onPress事件,这个触发onReleaseOutside.
  • 这个效率似乎非常低效,每次在应用程序内的任何位置单击鼠标时,您都会添加和删除事件侦听器.

必须有一个更简单的方法,不要告诉我Adobe在重写Actionscript时忘了这个吗?

示例AS2代码:

// Assume myMC is a simple square or something on the stage

myMC.onPress = function() {
  this._rotation = 45;
}

myMC.onRelease = myMC.onReleaseOutside = function() {
  this._rotation = 0;
}
Run Code Online (Sandbox Code Playgroud)

没有onReleaseOutside处理程序,如果你按下squre,将鼠标拖到它外面,然后释放鼠标,那么方块就不会旋转,并且看起来被卡住了.

migration flash actionscript-2 actionscript-3

4
推荐指数
1
解决办法
6731
查看次数

nodejs net.createServer 大量数据传入

我让 nodejs 监听 tcp 端口并从 Flash XMLSocket 获取内容。如果我尝试从 flash ( XMLSocket.send(long_message)) 的一条消息中推送大量数据,我总是最终stream.on("data", function(d) {触发事件,而我希望在传输整个消息时发生。Flash 的 XMLSocket 将数据作为以空字节结尾的 UTF8 编码字符串传输。如何控制我的消息一致性?

更新

我在这里找到了类似的问题。但没有明确的答案。我知道我的消息的结尾应该是空字节,但是你能给我一个关于如何存储不完整消息并避免与下一条/并发消息重叠的例子吗?

更新2

在 maerics 的回答之后,我做了类似的事情

    var server = net.createServer(function(stream) {
    var dataBlock = "";
    stream.on("data", function(d) {
            processChunk(d);
    });

    function processChunk(data) {
            var chunks = data.split("\0");
            while (chunks.length > 1) {
                    if (dataBlock.length > 0) {
                            dataBlock += chunks.shift();
                            processIncompingMessage(dataBlock);
                            dataBlock = "";
                    }
                    else {
                            processIncompingMessage(chunks.shift());
                    }
            }
            dataBlock += chunks.shift();
    }
    }
Run Code Online (Sandbox Code Playgroud)

actionscript-2 node.js

4
推荐指数
1
解决办法
4458
查看次数

Flash中的onMouseUp/Down和onPress/Release事件有什么区别?

在Flash中,似乎有两组鼠标点击事件:

  • onMouseUp,onMouseDown
  • onPress,onRelease

这些事件之间有什么实际区别吗?我无法从文档中看出来,并且我没有注意到实际使用中的任何内容,但是对于相同的基本事件有两组不同的名称似乎很奇怪.我错过了什么吗?它们之间有区别吗?

澄清:这是ActionScript 2代码,针对Flash 8.

flash mouse events actionscript actionscript-2

3
推荐指数
1
解决办法
5521
查看次数

在Textmate中断开切换 - 评论

我在TextMate for Actionscript 2中遇到了Toggle Comment命令("注释行/选择")的问题(我知道,我知道).我已经尝试完全剥离设置的语言以隔离问题,并试图通过Ruby,但都无济于事.我的问题是该命令坚持使用块注释进行注释切换(⌘+ /),并且在添加首选项文件以更改TM_COMMENT_MODE时不遵守.我甚至试过使用这个简单的偏好:

{   shellVariables = (
        {   name = 'TM_COMMENT_START';
            value = '// ';
        },
    );
}
Run Code Online (Sandbox Code Playgroud)

但没有运气.我希望有人比我自己更好地说Ruby(即,根本就是)可以找到一个简单的解决方案.您可以通过创建新的actionscript 2文件并尝试⌘+ /一段代码(甚至一行)在TextMate的任何(最近)安装中重现.与将使用行注释的JS文件对比.将"评论"片段从JavaScript复制到Actionscript包,问题将持续存在.

谢谢!

ruby textmate actionscript actionscript-2

3
推荐指数
1
解决办法
384
查看次数

AS3中void和Void的区别是什么?

我注意到我可以将函数的返回类型设置为'Void'以及'void',并且只是想知道是否存在并且有益处?

actionscript-2 flashdevelop actionscript-3 void

3
推荐指数
1
解决办法
467
查看次数

动态访问flash actionscript 2中的嵌套影片剪辑

我有一个我想要访问的嵌套影片剪辑实例.影片剪辑的路径由两个变量(类似于行和列)定义.

我已经动态访问父级影片剪辑,如下所示:

eval("row"+ ActiveRow)

现在我想要动态地访问一个名为#(#)的行(#)的子项.

以下是我完成任务的最佳猜测(两者均无效):

var i:number;

eval("row"+ ActiveRow +".let"+ i)或eval("row"+ ActiveRow).eval("let"+ i)

非常感谢您的努力和可能的解决方案..

variables flash actionscript-2 dynamic movieclip

2
推荐指数
1
解决办法
8192
查看次数

Flash AS3全局变量?

我有一个主要班级

//main.as

package {
    public class main {
        public var testGlobal:string = "testValue";

    }
}


//pop.as

package {
    public class pop {
        function pop():void {
            trace("testGloabl from main.as" + testGlobal);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何使用主类Object在pop.as宽度上获取testGlobal值.有没有全局变量的方法?

如何在AS3中使用全局变量.

flash actionscript actionscript-2 actionscript-3

2
推荐指数
2
解决办法
4万
查看次数

如何在外部加载的图像中进行平滑处理?

在Flash中,我可以进入库中图像的属性,并检查"允许平滑"以在缩放或旋转图像时启用重新采样.

如何从SWF从外部URL动态加载的图像中获得相同的效果?

flash actionscript actionscript-2

2
推荐指数
1
解决办法
8073
查看次数

如何在按钮按下时在命令提示符中执行命令并在ActionScript中返回输出?

我有一个使用Flex的GUI.我有一个条件,我需要在本地机器中执行一些命令行参数,并将结果返回或输出回文本框区域.如何在本地机器上提交,执行命令并返回输出?

Command to execute example: 

    echo logfile.log | grep username

Code:

button1.onRelease = function () 
{
    // in this computer, it will now run a command, please wait.
}
Run Code Online (Sandbox Code Playgroud)

我的回答是:https://gist.github.com/993905

flash actionscript actionscript-2 actionscript-3

2
推荐指数
1
解决办法
3176
查看次数

ExternalInterface.call无效

我试图ExternalInterface.call()从我的SWF里面.

请注意,调用来自我嵌入到另一个SWF(_root我无法控制的SWF)的SWF内部.

这是我的JavaScript:

function player_DoFSCommand(command, args) 
{
    args = String(args);
    command = String(command);

    var arrArgs = args.split(g_strDelim);

    switch (command)
    {
        case "CC_ClosePlayer":

            console.log("yo");
            break;

        default:
            // alert(command);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的AS2代码:

import flash.external.ExternalInterface;

var quiz = _root;

quiz.g_mcFrame.mcFinish.swapDepths(quiz.getNextHighestDepth());
quiz.g_mcFrame.mcFinish._visible = false;
quiz.oSlide.m_oInteraction.m_oVariableMgr.m_arrBoolResumeData = false;

var arrVars:Object = quiz.oSlide.m_oActionHandler.m_oFrame.m_oVariableMgr.m_arrVariables;
var args:Array = [
    arrVars[2].m_nNumber, // Points awarded
    arrVars[3].m_nNumber, // Max points
    arrVars[5].m_nNumber, // Pass percentage
    arrVars[6].m_nNumber, // Pass points
    arrVars[7].m_nNumber, // Score percent
    arrVars[10].m_strString // Result
]; …
Run Code Online (Sandbox Code Playgroud)

javascript flash actionscript actionscript-2 externalinterface

2
推荐指数
1
解决办法
6703
查看次数