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