您的位置:首页 > 其它

flash一些杂项

2015-09-09 15:28 246 查看
作为快速开发遇到的问题

1 movieclip绑定代码后

如果需要多个movie绑定同一个as,会提示要另外起名字,

这里其实可以把as名字填上基类上,类上随意填不同的就行,就可以绑定多个,而且movieclip可以有不同的图片但是相同的行为

2关于帧上全屏测试
http://bbs.9ria.com/thread-148009-1-1.html
stage.displayState = StageDisplayState.FULL_SCREEN; 或者fscommand("fullScreen","true")都可以直接让SWF全屏1 不能在FLASH IDE的测试环境下全屏,必须单独用FlashPlayer打开SWF才可以。2 如果SWF被插入到网页中,不能直接全屏,必须由鼠标或者键盘来触发,并且插入SWF时要设置allowFullScreen参数为true。

3 AS3 调用gotoAndStop后,显示对象为null的解决方法
http://blog.163.com/lrm_1036/blog/static/929161502014118254047/
MovieClip的帧显示对象的构造和帧代码是异步执行,所以才造成在第二帧代码访问帧上的对象为null的情况。

private function test():void

{
mc.gotoAndStop(2);
mc.addEventListener(Event.FRAME_CONSTRUCTED, _onFrameConstructed);

}

private function _onFrameConstructed(e:Event):void
{
mc.removeEventListener(Event.FRAME_CONSTRUCTED, _onFrameConstructed);
mc.aa.visible = false;

}


4 gotoAndStop不是函数

(e.target as MovieClip).gotoAndStop(2)//要多个强制转型

5 flash的类似反射方法 字符串转变量

this["scale"+(i+1)].visible = true;

//i = 1时可以访问scale2 变量 注意后i+1必须有括号,因为是和转换为字符

6 进入一帧会刷新一帧的内容,所有按钮之类都会和之前摆上去的一样(就是和编辑器里的一样)

为了让某些代码只执行一次比如var sound:Sounds=new Sounds();

必须价格判断,因为我做的是互动的需要长时间开机,所有干脆第一帧空着做处理,循环都在第一帧之后进行

7 声音

如果声音已导入到库:
var sound : Sounds = new Sounds();//Sounds为声音属性中actionscript 类名字
var soundchannel : SoundChannel = new SoundChannel();
var checkstop = true;
btn_btn.addEventListener(MouseEvent.CLICK, btnmouseclick);
function btnmouseclick(event : MouseEvent) {
if (checkstop) {
soundchannel = sound.play();
checkstop = false;
} else {
soundchannel.stop();
checkstop = true;
}
}
如果加载外部声音:
var url : URLRequest = new URLRequest("D:/xxx.mp3");
var sound : Sound = new Sound();
var soundchannel : SoundChannel = new SoundChannel();
var checkstop = true;
sound.load(url);
sound.addEventListener(Event.COMPLETE, soundloadcomplete);
function soundloadcomplete(event : Event) {
btn_btn.addEventListener(MouseEvent.CLICK, btnmouseclick);
}
function btnmouseclick(event : MouseEvent) {
if (checkstop) {
soundchannel = sound.play();
checkstop = false;
} else {
soundchannel.stop();
checkstop = true;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: