ASWing

Filed Under (AS2, AS3) by CouldHll on 13-09-2010

Tagged Under : , ,

ASWing is a GUI framework, like Swing in Java.

ASWing是通过全代码实现的,不过有可视化工具:GuiBuilder和SkinBuilder。

官网:http://www.aswing.org/

官网中文站:http://cn.aswing.org/

swf加密解密工具

Filed Under (AS2, AS3) by CouldHll on 03-02-2010

Tagged Under : , ,

加密:
DoSWF:不错的加密工具,选项也很丰富,可对SWF进行加密、混淆、注入随机代码、水印等,非常强大,推荐使用。
SWF Encrypt:老牌的加密工具,没有多余的选项可用,一键加密后被硕思搞定了。

解密:
Sothink SWF Decompiler:老牌的SWF破解工具,最新版本破解的能力还是非常强大,唯一不好地方就是加密工具注入随机代码后会导致崩溃,其他都能应付自如。
SWiX:通过XML的形式看FLASH,也可以直接进行修改,前提是你要看得懂。。。可以用这款软件查看或修改一些诸如帧率、颜色等常规,容易的内容。
AVR:也是满老的一个工具,破解的能力比硕思弱很多,不过多一个工具多一条路,硕思不行的时候可以用它试试。

查看 Flash Player 和 SWF 版本的网站

Filed Under (AS2, AS3) by CouldHll on 22-01-2010

Tagged Under : , ,

显示 Flash Player 版本:
http://www.playerversion.com

显示 SWF 文件版本:
http://www.swfversion.com

Flash解析带命名空间XML的问题

Filed Under (AS2, AS3) by CouldHll on 05-12-2009

Tagged Under : , , ,

问题描述:Hennessy项目,在Flash中调用Linq通过WebService返回的数据时,用AS3中E4X语法失败。只有使用AS2中.children()[0]的写法才能访问到数据。

问题分析:删除XML命名空间后,可以使用E4X语法。即在附中XML中删除:xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd=”http://www.w3.org/2001/XMLSchema xmlns=”http://tempuri.org/”

问题解决:在Linq中没有找到可以配置命名空间,所以只有在Flash端做处理,有如下几种解决方案:
1.删除所有命名空间,通过E4X语法或者正则表达式删除,操作起来比较麻烦
2.默认命名空间指定为空命名空间,default xml namespace=new Namespace(“”);,可能会遇到#1025错误,不知道怎么解决,可能是Flash的bug
3.使用带命名空间的E4X语法,所有字段前需加,namespace::,代码太繁琐

附:
<?
xml version=”1.0″ encoding=”utf-8″ ?>
<ArrayOfUserInfo xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance xmlns:xsd=”http://www.w3.org/2001/XMLSchema xmlns=”http://tempuri.org/>
……
</ArrayOfUserInfo>

AS2中Flash传参问题

Filed Under (AS2) by CouldHll on 22-06-2009

Tagged Under : ,

今天,一个简单的传参,搞了大半天。一直在<noscript>加参数,怎么试都没用,Flash原来默认调用的是JS段:<script language=”JavaScript” type=”text/javascript”>。

AS2源代码:

_root.aaa或者this.aaa

HTML源代码:

<script language=”JavaScript” type=”text/javascript”>
 AC_FL_RunContent(
  ’codebase’, ‘http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0′,
  ’width’, ’500′,
  ’height’, ’280′,
  ’src’, ‘Record’,
  ’quality’, ‘high’,
  ’pluginspage’, ‘http://www.adobe.com/go/getflashplayer’,
  ’align’, ‘middle’,
  ’play’, ‘true’,
  ’loop’, ‘true’,
  ’scale’, ‘showall’,
  ’wmode’, ‘window’,
  ’devicefont’, ‘false’,
  ’id’, ‘Record’,
  ’bgcolor’, ‘#ffffff’,
  ’name’, ‘Record’,
  ’menu’, ‘true’,
  ’allowFullScreen’, ‘false’,
  ’allowScriptAccess’,'sameDomain’,
  ’movie’, ‘Record’,
  ‘flashvars’, ‘aaa=aaa’,
  ’salign’, ”
  ); //end AC code
</script>
<noscript>
 <object classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0” width=”500″ height=”280″ id=”Record” align=”middle”>
 <param name=”allowScriptAccess” value=”sameDomain” />
 <param name=”allowFullScreen” value=”false” />
 <param name=”movie” value=”Record.swf?aaa=aaa” />
    <param name=”quality” value=”high” />
    <param name=”flashvars” value=”aaa=aaa″ />
    <param name=”bgcolor” value=”#ffffff” />
    <embed src=”Record.swf?aaa=aaaflashvars=”aaa=aaa” quality=”high” bgcolor=”#ffffff” width=”500″ height=”280″ name=”Record” align=”middle” allowScriptAccess=”sameDomain” allowFullScreen=”false” type=”application/x-shockwave-flash” pluginspage=”http://www.adobe.com/go/getflashplayer” />
 </object>
</noscript>

AS2的this

Filed Under (AS2) by CouldHll on 18-02-2009

Tagged Under : ,

  引用对象或影片剪辑实例。

  1、在附加到按钮的 on 事件处理函数动作中,this 引用包含该按钮的时间轴。

 
  实例1-1:在舞台上放一个按钮。在跟时间轴上定义一个变量var i:Number=0 ,在按钮上输入下列语句
on(press){
trace(this)//输出的结果将是_level0,就是说这里的this就是对根时间轴的引用
trace(this.i)//输出的将是0
}
  实例1-2:在舞台上放一个MC。并且输入实例名my_mc ,在该MC中放一个按钮,在跟时间轴上定义一个变量var i:Number=0 ,在按钮上输入下列语句
on(press){
  trace(this)//输出的结果将是_level0.mc,就是说这里的this就是对根时间轴的mc对象的时间轴的引用。
trace(this.i)//输出的将是undefined,因为该MC的时间轴没有定义i
}
  强调:在附加到按钮的 on 事件处理函数动作中,this 引用包含该按钮的时间轴
  2、在附加到影片剪辑的on() onClipEvent()事件件处理函数动作中,this 引用该影片剪辑自身的时间轴。
  实例2-1:在舞台上放一个MC,并且输入实例名my_mc,为该MC附加以下动作:
on(press){
trace(this)//输出的的将是_level0.mc,说明this是MC本身,而非_level0说明附加到MC的on()句柄与附加到button的on()句柄是不同的
}
  实例2-2:在舞台上放一个mc,并且输入实例名为my_mc ,为该MC附加以下动作:
onClipEvent(load){
trace(this)//输出_level0.mc,说明现在的this是MC本身
}
//继续输入下列语句
onClipEvent(enterFrame){
this._x+=2//现在MC向右运动了,何也?因为this是mc本身
}
  3、按钮事件写在桢上。{}中的thsi指向按纽本身
  实例3-1 在舞台上放一个按钮,并且输入实例名button,在桢上输入以下动作:
button.onPress=function(){
trace(this)//输出的是_level0.button,而非_level0,说明写在桢上与写在按钮上是不同的
}
  实例3-2 在舞台上放10个按钮,并且输入实例名button0….10,在桢上输入以下动作:
this["button"+i].onPress=function(){//最前面的这个this指根时间轴_level0, 用this的原因是因为要引用button, 这个是必须的,而实例3-1也可以this.button.onPress=function(),但往往我们可以省略.
trace(this)//现在是点击哪个MC,输出哪个MC,因为this是指向this["button"+i]
}
  4、MC事件写在桢上。同按钮事件写在桢上是一样的。
  5、定义的函数中的this,指向函数所在的时间轴。
  实例5-1 在桢上输入下列动作
function go(){
var i=0
trace(this)//输出的将是_level0,因为函数go就在跟时间轴
trace(this.i)// 输出的将是undefined,因为i是局部变量,只在本语句块有效,不可以访问
}
go() 

AS2对象层次的调用问题

Filed Under (AS2) by CouldHll on 16-02-2009

Tagged Under : , , ,

今天在AS2写的Flash里加个feedback功能,但是怎么都调不到插入字段,原来是AS2中的层次问题。

AS2中的层次是按照MovieClip来的

所以

在send按钮为MovieClip的情况下,要使用_parent.ObjectName.Text

在send按钮为Button的情况下,可以直接使用ObjectName.Text

Compare of AS3

Filed Under (AS3) by CouldHll on 11-02-2009

Tagged Under : , , ,

Compare with AS2:

http://livedocs.adobe.com/flex/2/langref/migration.html

Compare with JAVA5.0:

http://flexblog.faratasystems.com/?p=115