作为快速开发遇到的问题
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; } }