出于某种原因,当我尝试从Worker(在AS3中)接收共享属性时,结果始终为null.也就是说,我向一个Worker使用发送一个值setSharedProperty(),当我使用它来检索它时getSharedProperty(),它总是返回undefined/ null.
这是我设置的一个简单测试:
package
{
import flash.display.Sprite;
import flash.system.Worker;
import flash.system.WorkerDomain;
public class Main extends Sprite
{
private var _worker:Worker;
public function Main():void
{
if (Worker.current.isPrimordial)
{
initMain();
}
else
{
initWorker();
}
}
private function initMain():void
{
_worker = WorkerDomain.current.createWorker(this.loaderInfo.bytes);
_worker.setSharedProperty("message", "test");
_worker.start();
}
private function initWorker():void
{
_worker = Worker.current;
var message:String = _worker.getSharedProperty("message");
trace(message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我跟踪时message,结果为null.虽然我的主要目标是创建一个AIR应用程序,但无论我是编译AIR(3.7)还是Flash Player(11.6,由于某种原因,11.7无法将flash.system.Worker识别为有效类),我都会得到相同的结果. .
我正在使用Flex SDK通过FlashDevelop进行编译.有人知道什么是错的,也许我错过了我的代码中的一些东西?
我的PC上有一个项目,我希望在BitBucket上作为Git仓库托管它.我一直在使用SourceTree来管理与其他贡献者的现有项目,所以我知道有关修改存储库的基础知识,但我之前没有自己创建过.
到目前为止我所做的是在BitBucket上制作一个全新的回购,然后我进入SourceTree并在那里制作了一个新的回购.我添加了一个origin使用BitBucket给我的URL 调用的遥控器,但是当我尝试推送时我看到了这个:

通常我应该选择推动哪些分支,但在这里我没有看到任何分支.显然我正在master,它显示在左侧窗格中.
基本上,我很困惑.任何人都可以解释发生了什么或我应该做什么?
这是我第一次使用NSIS而我正在尝试制作一个使用MUI2的安装程序,但它并不太顺利.当我编译我的代码时,我没有得到任何错误,所以它编译,但我收到了一大堆警告.首先它发生在一个稍微复杂的安装程序,但我甚至做了一个超级简单的(仍然使用MUI2),我仍然得到相同的错误.这是结果日志:
MakeNSIS v2.46 - Copyright 1995-2009 Contributors
See the file COPYING for license details.
Credits can be found in the Users Manual.
Processing config:
Processing plugin dlls: "F:\Sami\Applications\NSIS\Plugins\*.dll"
- AdvSplash::show
- Banner::destroy
- Banner::getWindow
- Banner::show
- BgImage::AddImage
- BgImage::AddText
- BgImage::Clear
- BgImage::Destroy
- BgImage::Redraw
- BgImage::SetBg
- BgImage::SetReturn
- BgImage::Sound
- Dialer::AttemptConnect
- Dialer::AutodialHangup
- Dialer::AutodialOnline
- Dialer::AutodialUnattended
- Dialer::GetConnectedState
- InstallOptions::dialog
- InstallOptions::initDialog
- InstallOptions::show
- LangDLL::LangDialog
- Math::Script
- NSISdl::download
- NSISdl::download_quiet
- Splash::show
- StartMenu::Init …Run Code Online (Sandbox Code Playgroud) 所以我想说我想混合这两个音轨:

在Audacity中,我可以使用"混合和渲染"选项将它们混合在一起,我会得到这个:

但是,当我尝试编写自己的代码混合时,我得到了这个:

这基本上就是我如何混合样本:
private function mixSamples(sample1:UInt, sample2:UInt):UInt
{
return (sample1 + sample2) & 0xFF;
}
Run Code Online (Sandbox Code Playgroud)
(语法是Haxe但如果你不知道它应该很容易理解.)
这些是8位样本音频文件,我希望产品也是8位,因此& 0xFF.
我明白通过简单地添加样本,我应该期待削减.我的问题是混合使用Audacity不会导致剪辑(至少没有达到我的代码所做的程度),并且通过查看第二个(更长)轨道的"尾部",它似乎不会减小幅度.听起来也不软.
所以基本上,我的问题是:Audacity在做什么,我不是?我想把音轨混合起来,就好像它们是在彼此之上播放一样,但我(显然)不想要这种可怕的剪辑.
编辑:
如果我在添加之前对值进行签名,然后根据Radiodef的建议取消签署和值,这就是我得到的:

你可以看到它比以前好多了,但与Audacity产生的结果相比,它仍然非常扭曲和嘈杂.所以我的问题仍然存在,Audacity必须采取不同的做法.
EDIT2:
我将第一首曲目与我的代码和Audacity混合在一起,并比较了发生失真的点.这是Audacity的结果:

这是我的结果:

我想创建一个Flash应用程序,用户可以在其中加载文件并将文件保存到本地硬盘驱动器.虽然我经常使用File和FileStream类在AIR应用程序中完成此操作,但我之前在SWF中没有这样做过.
据我所知,这个FileReference类用于此,虽然由于安全风险似乎有一些限制.我想知道使用FileReference类和使用File和FileStream类加载和保存文件之间的主要区别.
在我的AIR应用程序中,当用户创建一个新项目时,我想要一个弹出框出现在他们可以输入项目名称的位置.我理解这是如何通过制作我自己的弹出框类型,但是在那里使用NativeWindows做到这一点的方法?也就是说,我可以使用包含文本字段和按钮的系统镶边来制作窗口吗?
我在FlashDevelop中使用Flex 4和AIR 2.7.