编辑:由于答案我更改了发布的代码.我已经添加了该 Security.allowDomain("*") 行,该行会引发错误.那么,怎么做呢?
我想将Action Script 3.0应用程序运行到Flex应用程序中.为此,我做了以下事情:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication windowComplete="loadSwfApplication()" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private function loadSwfApplication()
{
// The next line throws me an error.
Security.allowDomain("*");
var urlRequest:URLRequest = new URLRequest("path/to/the/application.swf");
swfLoader.addEventListener(Event.COMPLETE, loadComplete);
swfLoader.load(urlRequest);
}
private function loadComplete(completeEvent:Event)
{
var swfApplication:* = completeEvent.target.content;
swfApplication.init(); // this is a Function that I made it in the Root class of swfApplication
}
]]>
</mx:Script>
<mx:SWFLoader id="sfwLoader"/>
</mx:WindowedApplication>
Run Code Online (Sandbox Code Playgroud)
问题是在调用swfApplication.init();AIR Player时会抛出异常:
安全沙箱冲突:调用者文件:///path/to/the/application.swf无法访问app所拥有的阶段:/SWFApplicationLoader.swf.
这是因为application.swf我在某处使用这样的舞台:
if (root.stage != null)
root.stage.addEventListener(Event.REMOVED, someFunction); …Run Code Online (Sandbox Code Playgroud) 我真的很困惑这个问题,而且我对Flex很新.基本上,我尝试使用mxmlc构建的任何内容都无法立即运行,根据我的操作给出了上述三个错误.它在30分钟前工作,我一直在花时间试图弄清楚改变了什么.我重新加载了Flex SDK,清除了我的资产缓存,清除了Firefox的缓存.(我正在使用Linux.)即使我使用-static-link-runtime-shared-libraries = false进行编译,因为看起来#2048是一个RSL问题,它仍然拒绝运行.
另一件奇怪的事,如果我坚持的话
<policy-file-url>http://fpdownload.adobe.com/pub/swz/crossdomain.xml</policy-file-url>
<rsl-url>textLayout_1.0.0.595.swz</rsl-url>
Run Code Online (Sandbox Code Playgroud)
在我的flex-config文件中,然后firebug告诉我,我的swf文件正在尝试访问应用程序文件夹中的副本,给出错误2032.如果我坚持我在frameworks/rsls /中的那个,那么它给了我错误2046.我不知道它是如何无法正确签名的,除非Adobe神奇地更改了签名并且没有更新他们的flex SDK.
任何帮助将不胜感激.
这是与ant build.xml一起使用的:
<mxmlc file="${module.main.dir}/main.mxml" keep-generated-actionscript="false" output="${module.output.dir}/main.swf" fork="${flex.fork}">
<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
<source-path path-element="${FLEX_HOME}/frameworks"/>
<compiler.theme file="${FLEX_HOME}/frameworks/themes/Halo/halo.swc"/>
</mxmlc>
Run Code Online (Sandbox Code Playgroud)
我在项目>属性>编译器选项>附加编译器选项中尝试了以下值,但它们都没有工作:
-theme=PATH_TO/halo.swc
-compiler.theme=PATH_TO/halo.swc
-theme=file=PATH_TO/halo.swc
-compiler.theme.file=PATH_TO/halo.swc
-theme.file=PATH_TO/halo.swc
Run Code Online (Sandbox Code Playgroud)
谢谢.
我现在已经在这里和那里看过几次,这让我很好奇.
<fx:Script fb:purpose="styling">
//script stuff
</fx:Script>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经看到它与它没有区别.我也没有得到任何编译器错误.fb:purpse的脚本与没有脚本的脚本有什么不同?不包括fb:目的的后果是什么?包括fb:目的有什么好处?
我想从我的自定义弹出窗口发送一些文本值,当它从主应用程序弹出一些文本输入时,我想知道如何检索用户在弹出窗口中输入的数据(文本输入).任何帮助表示赞赏.
在Flash Builder 4.6中,我创建了一个Flex Mobile AIR项目.
为什么两个按钮和滚动条都没有看到?
为什么我不能向下滑动以查看更多文本和2个按钮?

这是我完整而简单的源代码 -
"主视图" - Agreement.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
title="HomeView">
<s:layout>
<s:VerticalLayout paddingTop="10" paddingBottom="10" paddingLeft="10" gap="10" />
</s:layout>
<s:Label text="Agreement" width="100%" textAlign="center" />
<s:Label width="100%">
<s:text>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean tincidunt rutrum felis eu tincidunt. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In auctor erat nec ligula vestibulum porttitor ornare quam facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. …Run Code Online (Sandbox Code Playgroud) 如何使用.NET在服务器端创建一个Flash对象数组(例如,按钮),然后将它们作为二进制文件流式传输?
从本质上讲,我希望减少客户端从基本原语创建对象所花费的时间.
我正在尝试使用Flex4 SDK编译现有的Flex3项目.我收到这个错误:
Warning: This compilation unit did not have a factoryClass specified in Frame metadata to load the configured runtime shared libraries. To compile without runtime shared libraries either set the -static-link-runtime-shared-libraries option to true or remove the -runtime-shared-libraries option.
生成的文件与我原来的Flex3编译的.swf文件大致相同.在Flash Player中播放生成的.swf文件也会出现以下错误:
An Actionscript error ocurred: VerifyError: Error #1014: Class spark.core::SpriteVisualElement could not be found
如果我将编译器属性设置static-link-runtime-shared-libraries为true,则错误消失,一切都很好.但是,由此产生的.SWF的大小是几个100K的大.这不是我想要的.
我并不完全理解运行时共享库的概念,但似乎通过将它们静态链接设置为true的选项,这些库包含在.swf中.但是,我喜欢将它们从.swf中排除,并且只在运行时加载所需的库,因为我的项目似乎与Flex3有关(顺便说一句,我不知道).
如果我理解正确的话,playerglobal.swc应该包含我的.swf必须加载的外部库的所有必要代码.Flex4编译的文件需要更多的库吗?我应该对Frame元数据标签中的factoryClass做些什么吗?
我想我的问题归结为:我如何编译一个与之前的Flex3编译的.swf大小相同的Flex4 .swf?
我正在使用Flex 4和Flash Builder 4.我只是想学习创建组件,我创建了一个mxml组件,如下所示,并将其包含在我的应用程序中:
<?xml version="1.0" encoding="utf-8"?>
<s:TextInput xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
</fx:Script>
</s:TextInput>
Run Code Online (Sandbox Code Playgroud)
如果我取出fx:Script标签它可以工作,但只要我有这些标签(无论是否有任何实际代码)我得到错误:"Flex自定义组件不接受脚本:多个初始化器值为默认属性'text',类型为'String'."
那为什么会这样?组件中不允许使用脚本吗?
在使用预填充数据网格的Flex 4中,如何以编程方式获取或设置特定值,IE我不会使用selectedItems等.
例如,如何引用第4行第6列中单元格的值.
请提前感谢您的帮助.
克雷格
flex4 ×10
apache-flex ×8
flash ×2
air ×1
asp.net ×1
c# ×1
datagrid ×1
flashdevelop ×1
flex-mobile ×1
flex-spark ×1
flex4.6 ×1
halo ×1
mxmlc ×1
popupwindow ×1