Flash整站项目Gaia框架总结(2)AS2部分
今天的项目又用到了Gaia,只不过这次用AS2.不是AS3. 去年上一次的见此。 《Flash之gaia专栏——又见Gaia? 项目中用到的方法汇总》。 1 基础的基础1 goto的值是XML的id. 2 不用复制以前的FD模板,Gaia会自动生成,用了反而混淆 3 不要用自定义的滚动条,会出现>>INTERRUPTIN<<的经典错误. 为什么呢?我推测是这样的: 2?拦截页面比如活动页面要按步骤,1-2-3,不能直接跳到3,就要在拦截事件中判断。判断的方法可能很多,我想的很简单,就是判断上一个branch是不是,比如3之前是不是2,2之前是不是1. if (now = step2) { if (old=step1) { 跳到2(); }else { 退回1(); } } if (now = step3) { if (old=step2) { 跳到3(); }else { 退回1(); } }? 应该用哪个拦截事件呢?试了下,感觉onBeforeTransitionOut和onBeforeTransitionIn区别不大。 var myListener:Function = Delegate.create(this,onBeforeTransitionOut); //加拦截事件 releaseGaia = Gaia.api.beforeTransitionOut(myListener,true); //回调事件 function onBeforeTransitionOut(event:GaiaEvent) { var nowbranch = event.validBranch; trace("nowbranch/////"+nowbranch); if (nowbranch == "index/nav/action/step2") {//目标分支 if ( LASTbranch == "index/nav/action/step1" && 1==Main.step[1]) {//判断旧分支是不是上一个 LASTbranch = event.validBranch; //记录分支 releaseGaia();//跳到Step2 }else { LASTbranch = "index/nav/action";//记录分支 Gaia.api.goto("index/nav/action");//退回Step1 } return; } LASTbranch = event.validBranch; //记录分支 releaseGaia();//该去哪去哪 } ? 2 拦截之二上一次是把bg.swf作为assets放到index,控制代码在。在FDT搜索assets['bg'],找到。 要等到加载完成后,再播放。 ? 报错 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 branch-----------------------index/nav/action/step1 在一个动作列表中,递归超过了 256 级。 这可能是一个无限循环。 已禁止在此影片中继续执行动作。 ? 3??asset?asset可以加载swf也可以是xml。 像动画师做的东西就可以单独拿出来作为asset,这样,动画模块就和代码分离了。 <page id="index" title="Single Page Gaia" src="index.swf" depth="middle" SEO="true"> <asset id="MyPreloader" src="MyPreloader.swf" /> <asset id="bg" src="swf/assets/bg.swf" /> ?4 测试和发布在Page类文件加代码,文件既能单独打开看,又能在整体的时候,使用框架统一的淡入淡出。 //在构造器中 if (this._parent != undefined) { _alpha = 0; }else { my_init(); } //在transitionIn中 if (this._parent != undefined) { my_init(); }
|