AS3中的许多库类都具有"只读"属性.是否可以在自定义as3类中创建此类属性?换句话说,我想创建一个具有公共读取但是私有集的属性,而不必为我想要公开的每个属性创建复杂的getter/setter系统.
我正在尝试使用red5媒体服务器创建一个简单的聊天客户端,但我似乎有轻微的打嗝.我正在服务器端创建一个共享对象,它似乎正在成功创建它.但是,当我通过客户端更改对象(键入消息)时,会触发SYNC事件,但共享对象中的内容仍为空.我怀疑我在java端做错了什么,有什么建议吗?
控制台结果:
Success!
Server Message: clear
Server Message: [object Object]
Local message: asdf
Server Message: change
Server Message: [object Object]
Local message: fdsa
Server Message: change
Server Message: [object Object]
Local message: fewa
Server Message: change
Server Message: [object Object]
Run Code Online (Sandbox Code Playgroud)
服务器端:
package org.red5.core;
import java.util.List;
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
import org.red5.server.api.IScope;
import org.red5.server.api.service.ServiceUtils;
import org.red5.server.api.so.ISharedObject;
// import org.apache.commons.logging.Log;
// import org.apache.commons.logging.LogFactory;
public class Application extends ApplicationAdapter {
private IScope appScope;
// private static final Log log = LogFactory.getLog( Application.class ); …Run Code Online (Sandbox Code Playgroud) 我想知道是否有更好的方法来创建一个大型2D阵列并使用AS3的单个项目填充它?这是我目前正在做的一个简单示例:
private var array:Array = [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]];
Run Code Online (Sandbox Code Playgroud)
但必须有一个更实用的方式!提前致谢.
这里的基本问题.通常在AS3中,您通过Loader加载SWF,而您获得的是某种类型为"Loader"的伪MovieClip.
假设SWF是使用自定义类型的基类发布的,那么在阳光下是否有任何神圣的方式将此加载的SWF强制转换为扩展MovieClip而不是Loader的自定义类型?没有数据丢失?
或者,假设你不能,你甚至可以从扩展Loader本身的自定义类型转换它吗?
我有一个正则表达式,它将逗号分隔的数字与给定的多行文本中的可选两位小数部分相匹配.
/(?<=\s|^)\d{1,3}(,\d{3})*(\.\d{2})?(?=\s|$)/m
Run Code Online (Sandbox Code Playgroud)
它成功匹配1,12,12.34,12,345.67等字符串.如何修改它以匹配只有小数部分的数字.23?
编辑:只是为了澄清 - 我想修改正则表达式,以便匹配12,12.34和.34
我正在寻找'独立'有效数字.即,数字字符串,其边界是空格或行/字符串的开头/结尾.
我有一个按钮,顶部有一个MovieClip.是否有一种简单的方法告诉flash在ActionScript中忽略MovieClip的mouseOver事件,这样我的按钮不会闪烁?
我已经看过一些关于此的博客文章,并与我的队友进行了一两次讨论,但我想看看堆栈溢出社区的想法.
那么为什么Adobe Alchemy Tool比flex编译器创建了更快的运行flash字节代码?
此外,flex编译器什么时候能够获得类似的性能提升?
它是否需要程序员特定使用特殊阵列或类似的东西才能获得相同的性能?
我不确定到底发生了什么,但确实发现这URLLoader.close();是原因.
我有一个简单的应用程序,用户将信息输入文本框,然后我将该信息发送到PHP脚本并返回输出.收到输出后,您可以单击重置应用程序的新按钮.错误在于单击该按钮后执行的功能.
如果单击该按钮重置应用程序,它将重置所有变量等,但似乎我的addEventListener方法不执行.
这是重置功能:
//Reset function if the Reset button is pressed
function clearApplication(e:MouseEvent):void {
receivedData="";
data1TextBox.text="";
data2TextBox.text="";
resetButton.visible=false;
resetButton.removeEventListener(MouseEvent.CLICK, clearApplication, false);
goButton.visible=true;
goButton.addEventListener(MouseEvent.CLICK, getData, false, 0, true);
myLoader.close();
}
Run Code Online (Sandbox Code Playgroud)
执行完毕后,我的goButton工作不再有效.
如果goButton单击,则应执行以下操作:
function getData(e:MouseEvent):void {
if (data1TextBox.text!=""&&data2TextBox.text!="") {
goButton.removeEventListener(MouseEvent.CLICK, getData, false);
goButton.visible=false;
postVars = new URLVariables();
postVars.data1=data1TextBox.text;
postVars.data2=data2TextBox.text;
myRequest=new URLRequest("URL");
myRequest.method=URLRequestMethod.POST;
myRequest.data=postVars;
myLoader.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
myLoader.load(myRequest);
}
}
Run Code Online (Sandbox Code Playgroud)
最后,onComplete函数:
function onComplete(e:Event):void {
receivedData=e.target.data;
outputTextBox.text=receivedData;
resetButton.visible=true;
resetButton.addEventListener(MouseEvent.CLICK, clearApplication, false, 0, true); …Run Code Online (Sandbox Code Playgroud) 所以我创建了一个Air应用程序,可以保存为自定义文件类型.我在发布应用程序时设置了文件关联,当您双击该文件时,它会打开空中应用程序.有什么钩子可以检测到应用程序是通过文件打开的?显然,我需要检测到这一点,然后让应用程序打开文件本身.
flash ×6
actionscript ×3
apache-flex ×2
adobe ×1
air ×1
alchemy ×1
casting ×1
flex3 ×1
java ×1
properties ×1
readonly ×1
red5 ×1
regex ×1