文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页网页设计Flash → Flash MX 新的闪烁世界(第二天)

Flash MX 新的闪烁世界(第二天)

时间:2004/11/7 2:21:00来源:本站整理作者:蓝点我要评论(0)


            
             
              
             
            

               
               

            



            

Flash MX – 新的闪烁世界(第二天)

  今天的天气依然是那么的明朗,可是可怜的我还是逃不过加班的命运,难道2002年流行加班?不过不管我多么疲劳,回家后抓起Flash MX后还是兴奋不已……

  第一天我们知道,新的Flash MX在程序员/设计师的界面上作的很好,甚至考虑了他们之前的切换问题。你所要做的只是选择Window-> Panel Sets->xxxx,由于接下来我们的需要,这个xxxx你需要选择Developer(你的分辨率)。

  新改进的Flash ActionScript是根据欧洲的ECMA-262编码标准写的,在Flash MX中,已经剔除了Flash 5和以前版本的所有不符合这个标准的语句和代码,剩下的一些有的被优化有的继续保留了,也就是说这些代码从此进入了Macromedia的历史(该公司也表示建议使用标准化的语句)。

  新的Action Script有两类:单独功能的语句,例如运算符,变量,属性,方法,流程控制语句等;而另一类既是面向对象和新加入的部件概念,主要分4小类:Core;Movie;Client/Server;Authoring。前三类重新对v5的对象进行了分类,并加入了Stage、System、Microphone,Camera,NetStream,NetConnection,Video等新的对象,Button,TextField,TextFormat等常用的物体现在也可以通过ActionScript来作为基本对象控制;而且v5常用的LoadVars()已经被单独分离出来作为对象并且具有很多常用的方法和错误状态,这是值得兴奋的呢……还有就是配合Authoring 工具使用的Authoring类别,由于Flash MX整合了Generator(又一个不幸进入历史),加之,以后Flash MX的服务器端将由ColdFusion MX担任,可见今后的Flash网络可以配合自身具有一些Generator的一些功能来实现强大的网络体系结构。

  今天呢,作为重点部分的既是作为交互作用的LoadMovie()Action和LoadVars对象,我们也通过实例的形势来看看其魅力如何。

LoadMovie();LoadMovieNum();

  你还在Flash5中为了动态导入JPG图片而痛苦地把上百个图片转换成Swf格式呢吗?现在请停止那机械劳动吧。升级为Flash MX之后,我们可以尝试下面的例子:

首先,用Rectangle工具在场景中适当的位置画一个正方形,接着按F8把它转换为标号,按钮。(图1)



(图1)

接着,选中这个按钮,并按“F2”打开Action面板,输入下面的AS:


on (release) {
loadMovieNum("boy.jpg", 1);
}


注意,源文件和jpg文件需要放入同一目录中,接着图片会在按钮释放的时候被读入场景的第1 level中。(图2)



(图2)

  测试结果表明Flash MX的LoadMovie宣称支持JPG为实事,OK,继续我们研究它的所有。

LoadMovie()和LoadMovieNum()有什么不同?如果你在Flash 5中没有解决这个问题,下面的修改会给你满意的解释


修改刚才的按钮Action:


on (release) {
if (mc == undefined) {
_root.createEmptyMovieClip("mc",1);
}
mc._x=random(300);
mc._y=random(300);
mc.loadMovie("boy.jpg",1);
}


  由于懒惰,甚至连多做一个空MovieClip你都不想的时候,那么上面的if语句可以帮你,当场景中不存在mc这个MovieClip的Instance时,引入Flash MX的新MovieClip的方法createEmptyMovieClip()来动态产生一个MovieClip,叫做“mc”并置入Depth1。然后用loadMovie方法读入jpg文件,你可以发现MovieClip的loadMovie方法是没有Num字样的,上面问题的答案自然就可以解释为不读入MovieClip中的Swf/Jpg是loadMovie,反之既是loadMovieNum,上面最后一条语句也可以写为loadMovie(“boy.jpg”,”mc”);。

  下面做一个恶作剧,来让按按钮的人不知道如何按自己的按钮。这个时候你可以加入上面已经加入的设置_x/_y属性的Action。结果我们发现一个奇怪的事情,当图片出现在按钮之上的时候,该按钮的事件还是会被响应,而没有达到我们恶作剧的效果,不知道这个属于Bug还是MM早看透了我的恶作剧,不过下次我们可以尝试动态产生两个按钮,看看相应优先级(未来的某一天,我们会讲到Button对象)。(图3)



(图3


LoadVars对象

  新的LoadVars对象看起来更像是一个针对变量处理的XML对象的简化版。它通过传输符合application/x-www-urlform-encoded标准的MIME格式的字符串来和ASP/PHP/JSP服务器交互信息。

  LoadVars对象的主要方法有send()、load()、sendAndLoad(),我简单作了一个服务器/客户的交互结构来说明他们的用法。

首先,随便做三个控制按钮,上面写着区分他们的文本即可。 接着,我们按F2打开场景的Action面板,输入这段Action:


varsobj=new loadvars();
tempvars=new loadvars();
tempvars.onLoad=function(loaded){if (loaded){trace("loaded");this.saved=1;debugTrace(this)}};
aimUrl="http://localhost/";
debugTrace = function (what) { for (var elm in what) {trace(elm+"="+what[elm])}};


  首先创建两个loadVars对象,第一个是发送用,第二个是接收用。既然第二个是接收数据用的,当然就要有onLoad事件,这个onLoad事件默认状态不存在,所以创建它并得给它一个处理函数。定义服务器地址aimUrl,最后加入自定义的排错函数察帮助看结果。


第一个按钮的Action:(Send)


on (release) {
varsobj.send(aimUrl+"savevar.php");
debugTrace(varsobj);
}



发送数据是不改变当前状态的,而且是没有任何返回值的,我们可以通过debugTrace来查看结果。


第二个按钮的Action:(Load)



on (release) {
varsobj.load(aimUrl+"putvar.php");
debugTrace(varsobj);
}



loadVars对象读入数据的方式是异步传送,既是如果当前接收到的变量相同则覆盖,不同则接收,互不影响,结果通过debugTrace判断。


第三个按钮的Action:(sendAndLoad)


on (release) {
tempvars.saved=0;
varsobj.sendAndLoad(aimUrl+"savevar2.php?saved=1",tempvars);
}



  和我们熟知的XML对象一样,sendAndLoad对象需要有一个接收的loadVars对象来接收服务器的返回数据。这时,onLoad的作用会体现出来


服务器端

  我用PHP简单的写了三个对应请求的.php文本,你可以copy下面的文本。


putvar.php:
< ?
echo "a=1&b=2&c=3";
? >
savevar.php:
//save function
? >
savevar2.php:
< ?
if ($saved==1) echo "saved=2";
? >


Ok,所需要的一切就绪,那么我们可以看看测试结果:(图4)



(图4)

  结果没有什么可以新意,还是那句话,既是XML对象的简化版。不过,这样的结构在需要速度的前提并处理不到严谨的文本结构时可以有效利用。

可以trace(varsobj.load(false));的返回值居然是true(冷汗……),现在我想我更加确定load的可靠性了……

  对小型的Flash网站来说,新改进的loadMovie可以善加利用,可以有效的减少用户下载时间和你的制作时间;而对于速度要求非常高但没有条件作专业数据库的人呢,loadVars对象应该会让你满意,或者作个什么聊天室留言板都不是什么难事。

  唉……天晓得未知的bug有多少,我还未检测sendAndLoad是否还有非安全读入的bug。不过乐观的是Flash MX在扩展性和官方服务上作的很好,相信中后期的Flash MX将是一个完善的开发工具。(目前Macromedia正在做对J2EE和.NET的支持)

源文件:点击下载

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 Flash CS4基础入门 如何在Flash中打开一个定制的浏览器新窗口?学习ActionScript 3.0的6个好处几个小技巧精简Flash文件体积在Flash动画中添加“加为收藏”和“设为首页

人气排行 Flash游戏制作--小熊拼图用Flash实现几种镜头效果Flash制作动画知识:遮罩Flash如何做鼠标指针样式Flash制作环形文字Flash制作声情并茂的电子相册实例讲解flashMTV制作全过程(3)鼠标效果系列教程:游动的鱼