
[问题描述]:a.swf文件中使用ComboBox组件做了下拉框,单独打开a.swf,下拉框正常,b.swf是个外框文件,现在要用b.swf把a.swf加载到b.swf里的一个MC里,结果a.swf中的下拉框不正常了,下拉框里的项是正常的,就是点击后打不开列表,经测试,ComboBox的open事件也触发了,但是就是不显示列表。
[探索]:查遍Flash帮助、Flash组件帮助也没找到答案。无奈,只好打开ComboBox.as文件,看代码,700多行代码可不好看。在打开组件源文件,把ComboBox的组件源MC拖到新文件t1.fla里,然后在ComboBox.as里查找open事件,会看到它调用的是displayDropdown函数,然后再找到这个函数定义的地方,一句句读,看到一句
AS Code
var dd = __dropdown;
,从字面意思猜,它就应该是那个下拉弹出框,所以在它后面添加一句
AS Code
trace("dd " + dd);
,重新导出t1.fla,看到了trace出的语句dd _level0.depthChild0,然后新建t2.fla,新建空元件load,把load拖到舞台上,使用load作为容器加载t1.swf,结果trace出来是dd null,显然问题就出在这里。
(阅读全文…)
[例子]:假设舞台上放置一个实例名为_mc的影片剪辑,在舞台时间轴上写如下代码:
那么,当点击该影片剪辑时,输出的结果会是什么?是_level0吗?
一直以来,我都认为此处的_parent是指向_mc的上一级影片剪辑的,也就是说我认为此处_parent和this._parent是一样的作用。但是事实并非如此,你执行下最开始的那段代码就知道了,输出结果是undefined,而如果改成trace(this._parent)输出结果是_level0.
看下帮助中关于全局属性_parent的解释:
指定或返回一个引用,该引用指向包含当前影片剪辑或对象的影片剪辑或对象。
在相对路径中,使用关键字 this 指示当前层中的当前时间轴;使用别名 _parent 指示当前时间轴的父时间轴。
因此如果代码是写在帧上的时候,_parent指的是当前时间轴的父时间轴,而this._parent指的是this指向的对象或影片剪辑的父对象或影片简介。
另外,扯一点this,如果代码直接写到按钮上,this指的是包含该按钮的父级影片简介,如果写到影片剪辑上,this指向该影片剪辑,如果写到按钮或者影片剪辑的父级影片剪辑的帧上,this都指向该按钮或影片剪辑。
FlashCS3打包的exe程序在中文支持问题上解决了放在中文路径下无法正常加载swf文件的问题.使用Flash8打包过exe文件的都会知道,当使用它通过loadMovieNum方法加载路径中有中文名的swf文件时是无法成功的,只有加上”/”才能成功。而FlashCS3打包的exe文件已经解决了这个问题,可谓一件好事!
但是,却有新问题发生,FlashCS3打包的exe程序使用fscommand(”exec”,”exe路径”)时存在问题!虽然成功的调用了外部exe文件,该exe程序却无法正常访问其他文件!经查该外部exe程序运行时路径为\\?\磁盘驱动器:\一些路径\.exe而不是正常的磁盘驱动器:\一些路径\.exe,因此该外部exe程序无法访问其他文件。
[关键字]Flash 数据流 声音 音质变差 立体声转换成单声道
[问题描述]:将声音放到时间轴上,选择数据流的同步方式,在Flash中听声音没有发现问题,但是导出后音质变的奇差,基本上不能用,虽然将声音同步方式选择开始或者事件可以解决这个问题,但是有时是非要用数据流同步方式不可的(因为要用播放暂停控制,因为有进度条控制)。
[解决办法]:这是由于在导出时,Flash会以MP3的形式压缩声音,一般会把声音压缩成比特率低于22Kbps的声音,同时将立体声转换成了单声道声音,很多声音都是因为将立体声转换成单声道后音质变差的。因此我们要去掉次选项。
(阅读全文…)
在最近的面试中,我出了下面这样一道题目:
写一个比较两个数是否相等的函数。
这道题目简单吗?
很多人是这么写的
如果定义的某个变量在某个地方被改变了值,我们希望能知道发生了什么改变,并且想对这种改变做些处理,该如何实现呢?方法之一是使用watch方法。
输出结果是