Flash制作和软件使用

2014-11-09

——君子善假于物也

引子

虽说FLASH在随着HTML5的发展而受阻,尤其移动终端都不再支持它了,但是在一段时间内还是重要的。近期朋友说要结婚,想弄个电子请柬,想着和编程差不多吧(以前反编译过算是未加密的游戏,参考下来游戏设计都是as1,as3.0代码),我一口答应下来。

后来想想主要是有点动画,可以不写或者几句代码,最多的语句帧stop(),然后插帧成画。大致了解了一点点,flash制作软件使用,朋友前几天给了个网址,觉得这个不错,可是不可以下载或者下载fla原始档要等价币。于是拿出前端的一小步本事,谷歌浏览器下按F12,审查元素,或Ctrl+Shift+J打开控制台,输入document.getElementById("gameid").data获取地址。

swf文件

然后拿工具反,好多反不了,就反2个,而且点击某项出错。于是从网上重新看看有没有其他网站也有这个资源,碰巧找到了,君子善假于物也,而且可以反出来99%的fla。具体swf文档格式规范除了官网(没去看过)可以参考这里(这是一个比较好的十六进制文件浏览编辑器了,可以用模板):http://www.sweetscape.com/010editor/templates/files/SWFTemplate.bt

大致格式是:swf文件是由1个head和1个body构成的,body是由大量的tag组成,一个tag都包括一个头和一个数据体,头有2种类型,短tag型和长tag型。也可参考swf百科。

下图是7z初步浏览(可以初步浏览大部分壳文件,如pe,elf等文件格式):

还有就是反出来导出的是as1.0的,我电脑上是x64,win8.1,正好装了Flash CC(仅64位,仅支持ActionScript3.0)。用这个打开不好,提示转as3.0,代码有的丢失,且不能再生成swf,如_root不能再直接样用了,按钮事件也没有了,其他都要符合对象设计思想。

由于还不太了解还是用低版本的Flash8来搞,我只修改文件就可以了,下面是重新设计了。

认识flash工具

这里不谈as1.0的旧规范。首先,我要改文字可以通过舞台上双击目标一层一层进入最终目标,这里我已经替换原来的影片剪辑元件(每个字又是图形元件分布在帧的不同层)了,因为原来使用字体不知道为什么点击后会破坏掉文字,现在显示为静态文本。

到此需要了解一些知识。

舞台,就是所有要显示的东西或者活动的一个平台容器。而在舞台上工作的就是元件了。

元件是可反复取出使用的图形、按钮或一段小动画,元件中的小动画可以独立于主动画进行播放,每个元件可由多个独立的元素组合而成。说的直白些,元件就相当于一个可重复使用的模板,使用一个元件就相当于实例化一个元件实体。使用元件的好处是,可重复利用,缩小文件的存储空间。

Flash元件有三种:一是图形元件、二是按钮、三是影片剪辑(还有说这些——绘制对象、补间、像素图形,组,也可看作"元件")。

  • 影片剪辑(MovieClip)---可以独立于主时间轴播放的动画剪辑,可以加入动作代码,人们常称mc。影片剪辑通常使用在:1、元件里要加代码。2、元件在时间轴上只有一帧,但元件里的动画要循环播放。3、模拟按钮元件。4、需要用代码来控制其实现特殊功能。
  • 图形(Glyph)---依赖主时间轴播放的动画剪辑,不可以加入动作代码。其它类型转为图形后无法直接编辑,要双击打开后才可以编辑,如果是由按钮和影片剪辑转换的,那么按钮和影片剪辑将无法用外部的代码来控制,所以一般不这样使用。图形主要使用在不需要循环的动画或做静止的背景,以及做为运动补间动画的关键帧时使用。
  • 按钮(Button)---有"常规"、"弹起"、"按下"和"点击"四帧的特殊影片剪辑,可以加入动作代码,长称btn。按钮使用一般比较多,在动画过程中使用少,多使用在控制流程中。
  • 绘制对象,用绘图工具,并选择了绘制对象按钮时绘制的图形,如下图中选择矩形工具,并点箭头所指绘制对象工具,绘制出来的图形就是绘制图形,它可以直接进行修改,在它上面建立绘制新的图形不会影响它的完整性,可以用来制作变形动画,遮罩等等。
  • 像素图形,直接用绘制工具绘制出的图,如上图中下排左侧的红色方块,被选择后会有反向像素点显示,可以直接修改,主要用来制作变形或遮罩,如果它上面有新绘制的像素图形,会影响它的完整性。
  • 文字元件上还会略有不同,对文字的操作如果是变形动画要执行两次打散操作将其转为像素图形,如果是运动补间则要把文字转为图形或影片剪辑。
  • 补间,这种"元件"应该说是一种失败的图形元件,通常在制作运动补间动画时没有成功或是没有转换为元件就直接对绘制的图形执行了补间动画命令生成的,这种元件很容易出错,所以建议不要使用。
  • 组,严格意义上说组也不应该算是元件,组是把场景的一些元素组全在一起(ctrl+G),其功能只是方便管理,可以做运动补间动画。

下图是Flash8和FlashCC的元件属性截图,可见元件可以互转,可以想象,元件有个属性记录类型。

影片剪辑和图形元件:影片剪辑顾名思义可以存放影片(即动画),当图形元件和影片剪辑都有动画时,把影片剪辑元件放到主场景时,他会循环地不停的播放。而把图形元件放到主场景,不会播放。

至此如果保留动画等,而改变文字,可以直接修改显示文字的元件就可以了。

动态文本使用

进入动态文本所在元件,即Page1.宴请地址元件的Layer 1:帧1,才可以编写代码。

进入元件上的动态文本编辑框,有a表示有脚本

注意:能动态赋值肯定是动态文本,如果属性里选择消除锯齿,需要嵌入字体的,然后弹窗选择要显示的,如汉字,英文字母,数字等,才显示;去掉属性里的"可选"(Ab图标按钮,有tips提示)属性来让它播放时不可选。

获取文件名

//"file:///C|/Documents%20and%20Settings/Administrator/桌面/TO_绿色清新请柬.swf"
//文件名TO_XXX, 直接读取XXX
function getToNameByFile()
{
var sName = _root._url, istart, iend, idx;
//反编码
sName = unescape(sName)
//通过路径获取的文件名
istart = sName.lastIndexOf("\\");//open by browser.
if(istart < 0){
istart = sName.lastIndexOf("/");
} //去掉文件名里的后缀扩展名
iend = sName.lastIndexOf(".");
if(iend < 0){
iend = sName.length;
} //无后缀扩展名的文件名
//sName = sName.substring(istart + 1, iend); //获取文件名To_XXX读取XXX
idx = sName.indexOf("_", istart + 1);
if(idx >= 0){
istart = idx;
} return sName.substring(istart + 1, iend);
}
bk.text = getToNameByFile();

嵌入字体

还有重要一点,发布后文件体积变的老大,十几M。百思不得其解,我嵌入字体只搞了几十个嵌入,而且文本框不多,每个都看了啊。后来在这个空文本框里写个2就好了,百思不得其解。

如下图,勾选生成大小报告,会输出一个报告文本。

结果

看不到谁使用了这个字体,如果一个工程里有很多文本框岂不是找死,这个不多的工程都没有找到。

后来发现是留一个邀请谁谁的那个文本框留空,虽然属性设置”使用设备字体”但是,如果选择使用”消除齿距“,然后“字体嵌入…”按钮变得可用就会发现,它勾选了。至此不知道是不是这个原因,如果是,发布坑爹啊。

下面截图可能和前面不一致,前面的是场景重现,下面是FlashCC打开原始fla文件

不知道flash怎么搞,我是这样可定位谁使用了它的。

先找到字体,查看使用,追本溯源。

查找库资源引用

上面那个应该也可以,我粗浅了。。。

注意:库里显示音乐文件使用次数为2。背景音乐不知道在哪里误设置了,Ctrl+F查找,选择类型,声音,自动名称下拉框自动匹配唯一一个音乐。

Flash制作和软件使用的更多相关文章

  1. Flash制作遇到的小问题1--为何变形需要将图形打散(Ctrl+b)

    今天上Flash实验课遇到一个小问题,就是我在画一个矩形如下图:

  2. Allegro PCB -通孔焊盘制作 及Flash制作

    通孔焊盘制作,比如插针封装 数值确定: mil单位                                                                           ...

  3. ubuntu apt-get dpkg-scanpackages 制作本地软件源

    1. 收集软件,下载的软件都在/var/cache/apt/archives目录下 例如openstack L版的所有包 keystone,glance nova neutron....... 举例: ...

  4. [Azure DevOps] 使用 Inno Setup 制作桌面软件安装包

    1. 桌面应用程序的 CI/CD 桌面应用程序的 CI/CD 过程和网站有一些不同,毕竟桌面应用程序的"部署"只是将安装包分发到目标位置,连应用商店都不用上,根据公司的管理流程可以 ...

  5. 使用 InstallShield 制作 Delphi 软件安装包

    软件版本: InstallShield 12 Delphi 5/7 SQL Server 2005 一.配置软件信息 二.软件安装的需求配置 三.安装架构 四.安装需要的文件 软件的安装路径.可执行文 ...

  6. Flash流媒体服务器软件

    所谓流媒体技术,是指将连续的影像和声音信息经过压缩处理后放在网站服务器上,让用户能够一边下载一边观看.收听(即所谓的“在线欣赏”),而不需要等整个压缩文件下载到自己的机器上才可以欣赏的网络传输技术.目 ...

  7. python开发调用基础:模块的调用&制作包&软件开发规范

    一,包的调用 #!/usr/bin/env python #_*_coding:utf-8_*_ #调用 glance[1..4]\api\policy.py 路径 # policy.py 内容 # ...

  8. 关于2017届学长制作分享软件share(失物招领)的使用体验和需改进的内容

    使用体验 1.注册界面 注册界面提示明显,提示用户输入什么类型的密码,而且输入什么样的用户名不限,注册界面色调比较单一,注册内容比较少,而且比较简单,体验感比较好,但注册界面色调和设计全无,使用感一般 ...

  9. python连数据库制作音乐软件

    import pymysql conn = pymysql.connect(host="localhost",user="root",password=&quo ...

随机推荐

  1. hibernate基础工具findBySQL学习

    public List<Map<String,Object>> findBySQL(String sql,Map<String,Object> param,int ...

  2. 《Spark Python API 官方文档中文版》 之 pyspark.sql (四)

    摘要:在Spark开发中,由于需要用Python实现,发现API与Scala的略有不同,而Python API的中文资料相对很少.每次去查英文版API的说明相对比较慢,还是中文版比较容易get到所需, ...

  3. input标签不能设置height

    首先input是内联标签(inline) inline元素设置width.height属性无效 可以通过设置display:inline-block ,则内联标签可以设置width和height,但是 ...

  4. Idea连接服务器docker并部署代码到docker实现一键启动

    好记性不如烂笔头,写笔记是为了回头看的. 谁要是不小心搜了看了,如有不足之处敬请谅解. 一.准备工作 虚拟机centos7.X,docker1.3.X,Win10 Idea2018.1 默认Idea已 ...

  5. Enable and Use Remote Commands in Windows PowerShell

    The Windows PowerShell remoting features are supported by the WS-Management protocol and the Windows ...

  6. 【Visual Studio】让用VS2012/VS2013编写的程序在XP中顺利运行(转)

    原文转自 http://blog.csdn.net/asanscape/article/details/38752655 微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序只能在 ...

  7. 获取cookie中的某个参数值

    因为cookie的值是很多key=value连接起来的字符串,所以如果要取cookie中某个key的值: function getCookie(name) { let cookieValue = nu ...

  8. 《从零开始搭建游戏服务器》项目管理工具Maven

    简介 什么是Maven?Maven是一个项目管理和综合工具,提供了开发人员构建一个完整的生命周期框架. Maven使用标准的目录结构和默认构建生命周期,在多个开发团队环境时,Maven可以设置按标准在 ...

  9. tomcat7.0.55配置单向和双向HTTPS连接(二)

    上一篇文章:tomcat7.0.55配置单向和双向HTTPS连接 只是简要的配置了一下HTTPS,还有许多问题没有解决,本篇来解决这些文件 首先按照这篇文章:Widows下利用OpenSSL生成证书来 ...

  10. python 常用库, 随时添加中

    python只有你想不到的库,只要你能想到,肯定有对应的库 前面*的为标准库,**的是pip里面的,***则是要手动安装的1)python运行时服务* copy: copy模块提供了对复合(compo ...