Laan's steps..

Feed Rss

flex builder与flash协同开发

10.12.2008, flash, flex, ruby/rails, by .

使用as3开发
目前知道最好的IDE莫过于flex builder了
毕竟是本家东东啊
但是架构在flash上的程序
使用flex来写代码就有点麻烦了
在flash里面定义的实例
你在flex里面又不能声明
根本无法得到该实例的代码提示

而最近正好又是这方面的需求比较多
只好想办法咯
呵呵 该文章放在ruby分类下
当然是使用ruby来解决

首先当然是要在flash里面的类UI中定义各个实例
然后呢,在flex里面编写代码时加入修饰实例申明部分:
//decoration========================
private var uploader:UploadImage;
private var cutter:ImageCutter;
public var templateChooser:TemplateChooser;
private var systemBar:SystemBar;
//==================================

用//decoration===================来标志修饰开始
//====================修饰结束

比如你在flash类UI里加了一个MC,并命名为mask_mc
那你得在该MC映射的as类中加入相应修饰:
//decoration========================
private var mask_mc:MovieClip;
//==================================

(采用private只是让该类成员很好的被保护,实际上所有在UI中添加的都是public的)

第三步当然是在flash中编译
不过当然要去掉修饰部分
因为flashUI类中已经声明了(flex中再次声明主要便与代码编写)
使用ruby编写文件 去掉修饰:
class OptimizeAS3

def start dir
@dir = dir

doDir @dir
end

def doDir dir
return if (!FileTest.directory? dir)

puts “enter directory: ” << dir

next_dir = Dir.entries(dir)
next_dir.each do |item|
next if (item == “.” || item == “..”)

file = File.join(dir, item)

if (FileTest.directory?(file))
doDir file
else
if (!item.index(“.as”).nil?)

asfile = File.open(file, “r+”)

start = false

while !asfile.eof?
tmp = asfile.readline

#寻找修饰头
if (!tmp.index(“//decoration======”).nil?)
start = true
next
#寻找修饰尾
elsif (!tmp.index(“//============”).nil?)
start = false
next
end

if (start)
#如果进入修饰部分,在每行前加\得以注释该行代码
#不删除该行的目的主要用于调试。程序出错时报告出错行时可以直接对应到原代码行数
asfile.pos = asfile.pos – tmp.length – 1
asfile.write “//”

asfile.readline
end

end

asfile.close

end
end

end
end

end

base_dir = File.dirname __FILE__

#创建目录
Dir.mkdir base_dir + “/as3″ if (!FileTest.exist?(base_dir + “/as3″))

#将在flex builder中编写的类拷贝到新的目录
#使用dos命令——当然只能在windows下使用
system “XCOPY ..\as3\snapshot as3 /s”

cl = OptimizeAS3.new
cl.start base_dir

flash引入类,编译导出, ok!
局限很大 不过很有用

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>