-
2009-07-22
用外部类写的XML应用~
package
{
import flash.display.MovieClip;//导入包
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.navigateToURL;
import flash.net.URLLoader;
import flash.net.URLRequest;/**
* ...
* @author upflash.cn
*/
public class WebFavorit extends MovieClip//定义类型
{
private var webXml:XML;//定义变量
private var webList:XMLList;
private var urlLoader:URLLoader=new URLLoader();public function WebFavorit ()//导入外部XML
{
urlLoader = new URLLoader ;
var qq:URLRequest = new URLRequest('webXml.xml');
urlLoader.load (qq);
urlLoader.addEventListener (Event.COMPLETE,comp);//监听导入完成后执行函数
}private function comp (e:Event):void
{
webXml = new XML(urlLoader.data);
webList = webXml.web;
for (var i=0; i<webList.length(); i++)
{
var listbar_mc = new ListBar ;
this.addChild (listbar_mc);
listbar_mc.ID = i;
listbar_mc.x = 100;
listbar_mc.y = i * listbar_mc.height;
listbar_mc.a_txt.text = webList[i]. @ webName;
listbar_mc.addEventListener(MouseEvent.CLICK,linkWeb);
}
}
private function linkWeb(e:MouseEvent):void
{
var cur_mc = e.currentTarget
var urlStr:String = "http://" + webList[cur_mc.ID].webLink;
var qq:URLRequest = new URLRequest(urlStr);
navigateToURL(qq);
}}
}
-
2009-07-22
FLASH XML基础
var webXml:XML=<webs>
<web webName="bing">
<webLink>www.bing.com</webLink>
</web>
<web webName="baidu">
<webLink>www.baidu.com</webLink>
</web>
<web webName="google">
<webLink>www.google.com</webLink>
</web>
</webs>;
trace(webXml)//输出XML所有
trace(webList)//输出WEB节点
trace(webList.length())//输出节点长度
trace(webList[2].webLink)//输出第几个节点的 子节点
trace(webList[2].@webName)//输出第几个节点的 属性 -
2009-07-22
有关定时的 两个函数
var i:uint=0;
var id:Number=setInterval(f1,1000);//间隔执行函数(执行多次)
function f1() {
i++;
trace(i);
if (i==3) {
clearInterval(id);//清除间隔
}}
==================================
var id=setTimeout(f1,3000);//延时执行(只执行一次)
function f1() {
trace("end");
}clearTimeout(id)
-
2009-07-22
第十六课 时间的调用和应用~
带正点报时功能的简单的表
电子表字体:digifaw.ttf
var snd=new Snd();
f1();
var id:Number=setInterval(f1,1000);
function f1() {
var time:Date=new Date();
this.t_txt.text=formatNum(time.hours)+":"+formatNum(time.minutes)+":"+formatNum(time.seconds);
miao_mc.rotation=6*time.seconds;
min_mc.rotation=6*time.minutes;
hour_mc.rotation=30*(time.hours+time.minutes/60);
if (time.minutes==0&&time.seconds==0) {
//正点
snd.play(0,time.hours%12);
}}
function formatNum(num:uint) {
if (num>9) {
return num;
} else {
return "0"+num;
}}
演示地址:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson16.swf
源文件:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson16.rar
电子表字体:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson16txt.rar
-
2009-07-22
两个数学函数atan sin cos(正切 余切 正玄 余玄)
this.line_mc.addEventListener(Event.ENTER_FRAME,run)
function run (e) {
this.line_mc.rotation=Math.atan2(mouseY-this.line_mc.y,mouseX-this.line_mc.x)*180/Math.PI
}
var hudu:Number=0
this.ball_mc.addEventListener(Event.ENTER_FRAME,run1)
function run1 (e) {
//ball_mc.x+=3
hudu+=0.1
//ball_mc.y=Math.random()*10
ball_mc.y=Math.sin(hudu)*60+100
ball_mc.x=Math.cos(hudu)*60+100
} -
2009-07-22
代码实现补间动画
import fl.transitions.Tween;
import fl.transitions.easing.*;
var myTween:Tween=new Tween(myObject,"y",Regular.easeOut,0,300,1,true);更多内容参考Tween
-
2009-07-22
FLASH全屏代码
//监听和控制按钮
full_mc.addEventListener(MouseEvent.CLICK,res2);
function res2(e) {
if (stage.displayState==StageDisplayState.FULL_SCREEN) {
stage.displayState=StageDisplayState.NORMAL;
} else {
stage.displayState=StageDisplayState.FULL_SCREEN;
}
}要想在浏览器里面全屏,必须发布设置--HTML--模板--仅FLASH 允许全屏,在生成的HTML代码里面自动添加了JS代码~~
-
2009-07-22
第十五课 flash绘图功能和打印功能的实现
var ballArr:Array=[];
var pan:Sprite=new Sprite();
this.addChild(pan);
var g:Graphics=pan.graphics;
var balls:Sprite=new Sprite();
this.addChild(balls);
var i=0;
while (i<5) {
i++;
var ball_mc=new Ball ;
ballArr.push(ball_mc);
ball_mc.x=Math.random()*480;
ball_mc.y=Math.random()*380;
balls.addChild(ball_mc);
ball_mc.addEventListener(flash.events.MouseEvent.MOUSE_DOWN, dwn);}
drawLine();
function drawLine() {
g.clear();
g.moveTo(ballArr[0].x,ballArr[0].y);
g.lineStyle(3,0x00ff00);
for (var i=0; i<5; i++) {
g.lineTo(ballArr[i].x,ballArr[i].y);
}}
function dwn(e) {
var cur_mc=e.currentTarget;
cur_mc.startDrag();
stage.addEventListener(flash.events.MouseEvent.MOUSE_UP, up);
stage.addEventListener(MouseEvent.MOUSE_MOVE,mm);
}
function mm(e) {
drawLine();
}function up(e) {
stopDrag();
stage.removeEventListener(flash.events.MouseEvent.MOUSE_UP, up);
}
this.print_mc.addEventListener(MouseEvent.CLICK,printOnePerPage)function printOnePerPage(e):void {
var pj:PrintJob = new PrintJob();
var pagesToPrint:uint=0;
if (pj.start()) {
if (pj.orientation==PrintJobOrientation.LANDSCAPE) {
throw new Error("Without embedding fonts you must print one sheet per page with an orientation of portrait.");
}pj.addPage(this);
pagesToPrint++;if (pagesToPrint>0) {
pj.send();
}
}
} -
2009-07-20
第十四课 老土的人品测试器和switch语句的用法
in_txt.maxChars=5;
this.s_mc.addEventListener(flash.events.MouseEvent.CLICK,testClik);
function testClik(e) {
var str:String=this.in_txt.text;
if (str=="") {
this.out_txt.text="请输入名字";
return;
}var sum:int=0;
for (var i:int=0; i<str.length; i++) {
sum+=str.charCodeAt(i);
}
var yusu:uint=sum%10;
switch (yusu) {
case 0 :
this.out_txt.text=" 你拥有如此差的人品请经常祈求佛祖保佑你吧...";
break;
case 1 :
this.out_txt.text=" 是我不好...不应该跟你谈人品问题的..";
break;
case 4 :
this.out_txt.text="你的人品之低下实在让人惊讶啊...";
break;
case 5 :
this.out_txt.text="你的人品太差了。你应该有干坏事的嗜好吧?";
break;
case 7 :
this.out_txt.text=" 有你这样的人品算是不错了..";
break;
case 8 :
this.out_txt.text="你的人品太好了..你就是当代活雷锋啊...";
break;
default :
this.out_txt.text=" 你的人品不错..应该一表人才吧?";
}//this.out_txt.text=str
}演示地址:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson14.swf
源文件:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson14.rar
-
2009-07-19
第十三课 调用数组生成网站链接列表实例
//var webs:Array=new Array("a","b")
var webs:Array=[];
webs.push({webName:"google",webUrl:"http://www.google.cn"});
webs.push({webName:"baidu",webUrl:"http://www.baidu.com"});
webs.push({webName:"sougou",webUrl:"http://www.sogou.cn"});
trace(webs[0].webName);
var len:int=webs.length;for (var i=0; i<len; i++) {
var fangkuai_mc=new FangKuai ;
fangkuai_mc.ID=i;
fangkuai_mc.a_txt.text=webs[i].webName;
addChild(fangkuai_mc);
fangkuai_mc.stop();
fangkuai_mc.x=230;
fangkuai_mc.y=fangkuai_mc.height*i+30;
fangkuai_mc.addEventListener(MouseEvent.CLICK,fkClick);
fangkuai_mc.addEventListener(MouseEvent.ROLL_OVER,fkOver);
fangkuai_mc.addEventListener(MouseEvent.ROLL_OUT,fkOut);}
function fkOver(e) {
var cur_mc=e.currentTarget;
cur_mc.gotoAndStop(2);
}function fkOut(e) {
var cur_mc=e.currentTarget;
cur_mc.gotoAndStop(1);
}function fkClick(e) {
var cur_mc=e.currentTarget;
var id=cur_mc.ID;
var qq:URLRequest=new URLRequest(webs[id].webUrl);
flash.net.navigateToURL(qq);
}演示:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson13.swf
源文件:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson13.rar
-
2009-07-18
成本效益
成本效益 ---来自讲用户体验的一本书,书名字忘记了..
只有在收益大于成本时才会从事某项活动
从设计的角度看,成本效益原则通常用来评估同新的特征与组成部分相关的金融利润。成本效益原则还可用于从用户的角度确定设计质量。如果与设计互相影响的成本超过效益,说明设计很糟;如果效益超过成本,说明设计很好。例如,走一段路去博物馆看展览构成成本,展览趣味的大小构成效益。这样,如果趣味超过走路的成本,说明展览的设计不错。
每个设计方面的质量都可以用成本效益原则来衡量。了解某个信息的主要内容要点,读到何种程度就算过多?设置录像机的时间日期.几个步骤才算过多下载网页时可接受的最大时间为10秒钟。但是,下载时间的可接受性是下载页面提供的效益功能之一。高效益的页面不只是能够补偿超过10秒时间的下载成本。相反,低成本的页面不能补偿任何长度的下载时间成本。减少互动的成本确实能提高设计的质量,但是如果仅仅在成本范围内搞设计而不考虑互动效益,那就完全失去设计的目的一一提供效益。
运用成本效益原则的一个常见错误是去推测系统的哪些方面可看作成本,哪些方面可看作效益。例如,激发设计者的新设计特点或组成部分常常不会被与设计产生互动的人使用,甚至注意。在许多情况下,这种特点和组成部分通过增加系统的复杂性提高设计的互动成本。为避免这种情况,观察真实的目的环境中同该设计或类似设计互动的人们。在设计的形成期间,如果不能做自然观察,焦点群体座谈会和可用性测试在评估成本效益方面很有价值。
设计的各个方面都需要考虑成本效益原则。做设计决定时,不要只根据成本参数,而不充分考虑从互动中实现的效益。通过仔细观察、焦点群体座谈会和可用性测试核实目标人口成本效益的直觉。
-
2009-07-18
flash google map
-
2009-07-16
AS3第十二课 文本的应用和外部调用图片
注意:由于QQ空间防止盗链,所以QQ空间的头像可能会引用失败,有兴趣的可以下载到本地测试
QQ头像显示地址:
http://qun.qq.com/cgi/svr/face/getface?type=1&uin=自己QQ号a_txt.maxChars=10;
a_txt.restrict="0-9"
//空间头像定义
var fstr:String="http://qlogo3.store.qq.com/qzonelogo/";
var lstr:String="/1/0";
var ldr:Loader = new Loader();//QQ秀定义
var fstr1:String="http://qqshow-user.tencent.com/";
var lstr1:String="/10/00";
var ldr1:Loader = new Loader();s_mc.addEventListener(flash.events.MouseEvent.CLICK,seClick);
function seClick(e) {var num:String=a_txt.text;
//加载请求 输出空间头像
var url:String=fstr+num+lstr;
var urlReq:URLRequest=new URLRequest(url);
ldr.load(urlReq);
this.addChild(ldr);
ldr.x=50;
ldr.y=120;
//加载请求 输出QQ秀
var url1:String=fstr1+num+lstr1;
var urlReq1:URLRequest=new URLRequest(url1);
ldr1.load(urlReq1);
this.addChild(ldr1);
ldr1.x=200;
ldr1.y=120;}
演示链接:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson12.swf源文件下载:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson12.rar
-
2009-07-15
AS3第十一课 折腾了六个小时的字符串的输入与输出
竟然折腾了6个小时才写完这个看似不起眼的小应用。累啊
其中有个半个小时再查不等于的符号怎么写,到最后才明白,不等于就是大于或者小于来表示。T_T,数学没学好的悲哀。
a_mc.addEventListener(flash.events.MouseEvent.CLICK,f1);
var disp:Sprite=new Sprite ;//每次点击的时候先把影片剪辑给清除了,然后再重新复制就好了~~实现方法是定义一个容器function f1(e) {
clesrBG(disp);//定义清除函数
var str:String=a_txt.text;
var n:Number=str.length;
//trace(str.charAt (3))
//trace (n);
for (var i=0; i<(n-1); i++) {
var out_mc=new Out ;
disp.addChild(out_mc);;
this.addChild(disp);
out_mc.x=30+i%8*out_mc.width;
out_mc.y=200+int(i/8)*out_mc.height;
out_mc.b_txt.text=str.charAt(i);
}}
function clesrBG(target : Sprite):void {
var num:int=target.numChildren;
trace("num:"+num);
if (num>=1) {
for (var i=0; i<num; i++) {
target.removeChildAt(0);
}
}
}演示地址:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson11.swf
源文件下载:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson11.rar
-
2009-07-15
AS3第十课 选择题制作
//这个AS不适合批量的选择题制作,只适合单个题目
//提供源文件下载,本文最后(CS4版)
for (var i=0;i<4;i++ ){
var chick_mc= new Chick;
this.addChild(chick_mc);
chick_mc.x=362;
chick_mc.y=185+i*(chick_mc.width+8);
chick_mc.gotoAndStop(1);
chick_mc.addEventListener(flash.events.MouseEvent.CLICK,f1)
}fin_mc.addEventListener(flash.events.MouseEvent.CLICK,f2)
function f1 (e) {
var cur_mc=e.currentTarget;
this.right_mc.x=cur_mc.x;
this.right_mc.y=cur_mc.y;}
function f2 (e) {
if (right_mc.y<=200) {
a_txt.text='恭喜!你答对了!'
}else
a_txt.text='高中英语都不会啊,你完了'}
演示地址:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson10.swf
源文件地址:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson10.rar
-
2009-07-15
AS3第九课 监听鼠标或者进入帧 复制影片剪辑并实现粒子效果
//先做出一个影片剪辑在库中 设置到处连接的类名(Qipao)
stage.addEventListener(flash.events.MouseEvent.MOUSE_MOVE,f1);//监听鼠标移动也可以监听进入帧,那样进入影片剪辑就可以自动执行复制(例如:雨或者雪的效果)
function f1 (e) {
var a_mc=new Qipao();//定义一个MC并导入已经定义MC类
this.addChild(a_mc);//显示在舞台上
a_mc.x=mouseX;//控制坐标
a_mc.y=mouseY;
a_mc.gotoAndPlay(int(Math.random()*a_mc.totalFrames) )//随机帧的开始播放
a_mc.scaleX=a_mc.scaleY=Math.random()*0.5;//随机缩放}
演示连接:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson9.swf -
2009-07-15
AS3第八课 复制影片剪辑并实现拖拽
新建了一个有9帧不同图片的影片剪辑,并在库里面定义为IMG
for (var i=0; i<108; i++) {//FOR循环来复制影片剪辑
var img_mc=new IMG ;//加载类
this.addChild(img_mc);//显示到舞台
img_mc.gotoAndStop(int(Math.random()*9)+1);//停止到随机帧
img_mc.x=i%12*(img_mc.width+2);//设置宽度
img_mc.y=int(i/12)*(img_mc.height+2);//设置高度
img_mc.addEventListener(flash.events.MouseEvent.MOUSE_DOWN,f1);//监听点击
img_mc.addEventListener(flash.events.MouseEvent.MOUSE_UP,f2);//监听鼠标放下
}
function f1(e) {//设置拖拽函数var cur_mc=e.currentTarget;//设为当前MC
cur_mc.startDrag();//拖拽
var father=cur_mc.parent as Sprite;//定义当前MC的父级
father.setChildIndex(cur_mc, father.numChildren - 1);//设置层级
}
function f2(e) {//设置停止拖拽函数
stopDrag();
}演示链接:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson8.swf
-
2009-07-15
第七课 地图平移
//还是按钮控制影片剪辑 缓动的效果
4个按钮分别是:a_btn、b_btn、c_btn、d_btn控制着大地图:img_mc
全图是:map_mc 全图控制按钮:map_btn
var tx:Number=680.6;
var ty:Number=65.5;
map_mc.visible=false;this.a_btn.addEventListener(flash.events.MouseEvent.CLICK,f1);
this.b_btn.addEventListener(flash.events.MouseEvent.CLICK,f2);
this.c_btn.addEventListener(flash.events.MouseEvent.CLICK,f3);
this.d_btn.addEventListener(flash.events.MouseEvent.CLICK,f4);
this.img_mc.addEventListener(flash.events.Event.ENTER_FRAME,f5);
this.map_btn.addEventListener(flash.events.MouseEvent.CLICK,f6)function f6 (e) {
map_mc.visible=!(map_mc.visible);
}function f5(e) {
this.img_mc.x+=(tx-this.img_mc.x)/5;
this.img_mc.y+=(ty-this.img_mc.y)/5;
}
function f1 (e) {
tx=680.6;
ty=65.5;
}
function f2(e) {
tx=800;
ty=280;
}
function f3 (e) {
tx=180;
ty=242;
}
function f4 (e) {
tx=18;
ty=117;
}演示地址:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/lesson7.swf
-
2009-07-14
第六课 鼠标跟随 缓动
进入帧 监听 然后执行缓动跟随~
this.f_mc.addEventListener(flash.events.Event.ENTER_FRAME,f1);
function f1(e) {
this.f_mc.x+=(this.mouseX-this.f_mc.x)/10;//缓动公式P+=(T-P)/N
this.f_mc.y+=(this.mouseY-this.f_mc.y)/10;
} -
2009-07-14
第五课 显示对象结构(原理)
-
2009-07-14
AS3第四课 if语句+变量 控制影片剪辑
- 变量要先定义类型
- 全等==
- 或||
var speed:Number=10;//定义变量
this.k1_mc.addEventListener(flash.events.MouseEvent.CLICK,f1);
this.maDa_mc.addEventListener(flash.events.Event.ENTER_FRAME,f2);
this.k2_mc.addEventListener(flash.events.MouseEvent.CLICK,f3);
this.power_mc.addEventListener(MouseEvent.CLICK,powerClick);//监听事件定义函数
function powerClick(e) {
power_mc.scaleX*=-1;
speed*=-1
}function f1(e) {
if (this.k1_mc.rotation==0) {
this.k1_mc.rotation=-30;
} else {
this.k1_mc.rotation=0;
}
}
function f3(e) {
if (this.k2_mc.rotation==0) {
this.k2_mc.rotation=-30;
} else {
this.k2_mc.rotation=0;
}
}
function f2(e) {
if (this.k1_mc.rotation==0||this.k2_mc.rotation==0) {
this.maDa_mc.rotation+=speed;
}
}//点击开关控制影片剪辑的旋转。点击电阻(我是不明白是什么电阻)控制影片剪辑的旋转方向
-
2009-07-14
AS3第三课 if语句来执行影片剪辑属性的判断
我是一只在鱼缸里游来游去的金鱼。
IF语句快捷键 ESC+I+F
var speed:Number=10;//定义速度变量
this.fish_mc.addEventListener(flash.events.Event.ENTER_FRAME, f1);//定义监听事件
function f1(e) {
this.fish_mc.x+=speed;//叠加语句
if (this.fish_mc.x>500||this.fish_mc.x<=0) {//判断影片剪辑位置 执行变量
//&&
speed=speed*-1;
this.fish_mc.scaleX*=-1;//定义监听函数
}
} -
2009-07-13
AS3第二课 影片剪辑控制
//反复利用和动态值要定义函数,通过改变一个值来改变影片剪辑的属性。
//缓动公式var t:Number=250;//定义一个函数
this.help_btn.addEventListener(MouseEvent.CLICK,f2);//注册HELP按钮点击的事件
this.help_mc.close_btn.addEventListener(MouseEvent.CLICK,hide_f);//注册卡片上的关闭按钮的事件
this.help_mc.addEventListener(flash.events.Event.ENTER_FRAME,easyMove);//注册缓动的时间事件function f2(e) {
t=250;//}
function hide_f(evt) {
t=-800;
}
function easyMove(e) {
help_mc.y+=(t-help_mc.y)/5;//缓动公式 (目标位置-当前位置)/n
}演示地址:http://aisiyu.hp2.jp/wp-content/uploads/2009/07/06help.swf
-
2009-07-13
AS3第一课 定义
1.on(press){
_root.gotoandStop(10);
}(当鼠标点击松开后,执行根目录的主时间轴跳到10帧)
这种模式已经倒闭了,T_T 替换它的是
var my_mc.addEventListener(flash.events.MouseEvent.CLICK,f1)
(定义一个监听函数,目标:my_mc;触发事件:flash.events.MouseEvent.CLICK;函数名:f1)function f1 (e) {
stage.gotoAndStop(10)
}(当满足触发事件时候,执行的动作是:stage.gotoAndStop(10))
所以在AS3中,只有不断的定义,不断的执行,就能做出复杂效果来了~~








