免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享

[AS3]AS3简易相册

本文来自:★flash之路-flash技术交流★ 转帖请注明出处! 作者:网雨霏霏 您是第4227个浏览者

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
flashroad友情提示:
“点评”不是“回帖”!
本帖最后由 网雨霏霏 于 2019-1-30 20:18 编辑

AS版本:AS3
IDE:flashCS6
是否原创:是
简介:非常简单的一个相册小程序:


效果预览:

源码下载:
本帖隐藏的内容需要回复才可以浏览
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

获得 土地神卡 一张

卡片说明:网雨霏霏帮助迷路的小朋友找到家长,家长为表达谢意,付出了5威望

卡片效果:+5

友情提示:单击下列任意一个表情,即可瞬间自动回复本帖!

好贴......
郁闷......
开心......
擦汗......
鄙视......
狂怒
谢谢
爱你呦
拜托了
嗯嗯
OMG
求关注
伤心......
无奈.....
无奈.....
无奈.....
无奈.....
无奈.....
哈哈哈
NO
OK
what
我来了

最近访问本帖者列表:

李冠华
访问时间:2020-09-16 09:29
迷彩不流泪
访问时间:2020-02-18 23:53
网雨霏霏
访问时间:2019-03-17 22:25
许森匡
访问时间:2019-02-07 09:59
虚心
访问时间:2019-01-30 20:42

打赏

取消

感谢您的支持,我会继续努力的!

扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by 爱秀代码,分享从这里开始,精彩与您同在

点评
B Color Smilies

您还可以输入:个字符
X

X

楼下分层依次讲解用到的AS3代码
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
点评
B Color Smilies

您还可以输入:个字符
X

X

TOP

MouseEvent.CLICK 鼠标单击事件

其核心代码是:
A.addEventListener(MouseEvent.CLICK, B)
function B(C:MouseEvent):void
{
D
}
A是 事件源,也就是事件的发起者。本例是两个导航按钮的实例名
B是 响应函数,当观众单击了按钮之后,flash给出的反馈动作都写入B内部。B的名字随便写
C是 参数,参数必须有,参数的名字随便写
D是 单击按钮后执行的操作
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
点评
B Color Smilies

您还可以输入:个字符
X

X

TOP

target语句

本帖最后由 网雨霏霏 于 2019-1-30 20:45 编辑

注意:本例代码很简单。下文转自别处,有兴趣的可以看一下。



以下转自:https://www.cnblogs.com/sinsoul/p/3427265.html
在事件处理过程中,会自动生成事件类的实例,并传给侦听器函数。通过这个参数就可以使用事件类的属性和方法。其中target与currentTarget属性是两个很相似的属性。
对于简单的事件处理过程,分清target与currentTarget并没有必要。因为它们一般指向同一个对象。例如,舞台中有一个实例名为mc的影片剪辑实例,通过下面的代码为这个实例注册单击事件。
  1. mc.addEventListener(MouseEvent.CLICK,this.test);
  2. function test(e:MouseEvent)
  3. {
  4.    trace(e.target.name,e.currentTarget.name);
  5. }
复制
输出结果是一样的,target与currentTarget属性都是引用舞台中的影片剪辑实例。但在一个相对复杂的显示列表中,这两个属性是不相同的。

==============================
 下面通过例子来了解target与currentTarget属性的异同
1、新建Flash文档
2、改图层1名为as,单击图层的第1帧,打开动作面板,输入代码:
  1. var sp1:Sprite=new Sprite() ;
  2. var sp2:Sprite=new Sprite() ;
  3.    
  4. this.addChild(sp1) ;
  5. sp1.addChild(sp2) ;
  6.    
  7. drawRect(sp1,0xff0000,200) ;
  8. drawRect(sp2,0x0000FF,100);
  9.    
  10. //绘制矩形
  11. function drawRect(obj:DisplayObject,c:uint,l:int):void;
  12. {
  13.    obj.graphics.beginFill(c) ;
  14.    obj.graphics.drawRect(0,0,l,l) ;
  15. }
复制
上面的代码在主时间轴中创建了Sprite类的实例sp1,在sp1实例内又创建了Sprite类的实例sp2。
如果为父级sp1注册一个单击事件侦听器,当单击sp1时,target与currentTarget都指向sp1,当单击sp2时,target指向sp2,而currentTarget指向sp1。

因此在很多应用中,一般认为currentTarget指向父级。代码如下:
  1. sp1.name="sp1";
  2. sp2.name="sp2";
  3. sp1.addEventListener(MouseEvent.CLICK,clickFunc);
  4.    
  5. function clickFunc(e:MouseEvent):void
  6. {
  7.    trace(e.target.name,e.currentTarget.name);
  8.    
  9. }
复制
3、测试影片,分别单击大小矩形,查看信息
 如果为子级和父级都注册一个侦听器,那target属性是指单击的目标,而currentTarget属性是指在处理的事件即活动目标。
因为3.0的事件处理有捕获、目标、冒泡3个阶段,并且默认时采用冒泡机制,当单击子级时,currentTarget属性应先指向目标,并向上冒泡,就是先指向sp2,再指向sp1。

 为程序增加sp2注册事件侦听器:
  1. sp1.addEventListener(MouseEvent.CLICK,clickFunc);
  2. sp2.addEventListener(MouseEvent.CLICK,clickFunc);
  3. function clickFunc(e:MouseEvent):void
  4. {
  5.    trace(e.target.name,e.currentTarget.name);
  6. }
复制
因此,currentTarget属性应具备两个条件,一是它注册了侦听器,二是正在处理事件
而target属性就指事件流中的目标,例如,单击了sp2,不管事件如何冒泡或说不管currentTarget指向谁,target都指向sp2。

 target属性在事件流的目标阶段,而currentTarget属性在事件流的冒泡阶段、目标阶段和捕获阶段。
以单击事件为例,只有事件流处于目标阶段时,currentTarget属性与target属性的指向才相同,当事件流处于冒泡阶段和捕获阶段时,target属性总是指向被单击的对象,而currentTarget属性指向当前事件活动的对象。

 即使在没有发生事件流的处理时,有时也需区别target和currentTarget属性,比如在舞台中创建mc1,在mc1中又创建mc2,且mc2位于mc1的上面。
 当对父级对象即mc1处理事件时,使用下面的代码1:
  1. mc1.addEventListener(MouseEvent.CLICK,fun)
  2. function fun(e:MouseEvent)
  3. {
  4. trace(e.target.name)
  5. }
复制
测试影片时,单击mc1,输出mc1,单击mc2,则输出mc2。
如果要使用e.target属性始终指向mc1,可以使用容器对象的mouseChildren属性:

mc1.mouseChildren = false;

 当mc1的mouseChildren属性被设置成 false后,mc1的子级对象将不能处理鼠标事件,此时不管单击mc1还是mc2输出的都是mc1。
代码2:
  1. mc1.mouseChildren=false
  2. mc1.addEventListener(MouseEvent.CLICK,fun)
  3. function fun(e:MouseEvent)
  4. {
  5. trace(e.target.name)
  6. }
复制
由于currentTarget属性指向当前事件活动的对象,而mc1注册了单击事件,mc2没有注册单击事件,即mc1的事件是活动的。因此不管单击mc1还是mc2,currentTarget属性肯定指向mc1。


代码3;
  1. mc1.addEventListener(MouseEvent.CLICK,fun)
  2. function fun(e:MouseEvent)
  3. {
  4. trace(e.currentTarget.name)
  5. }
复制
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
点评
B Color Smilies

您还可以输入:个字符
X

X

TOP

switch语句

其核心代码是:
switch(A){
case B1 :
C1
break
case B2 :
C2
break
case B3 :
C3
break
}
A是判断条件
B是复合条件的所有选项,必须逐一陈列
C是执行的操作


B和C都有多个
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
点评
B Color Smilies

您还可以输入:个字符
X

X

TOP

if语句

其核心代码是:
if(A){
B
}
else{
C
}
如果A成立,执行B;反之,执行C
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
点评
B Color Smilies

您还可以输入:个字符
X

X

TOP

就酱紫.....
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.

获得 小福神卡 一张

卡片说明:李冠华照顾了失踪的小狗,主人付出了3金钱以作感谢

卡片效果:+3

点评
B Color Smilies

您还可以输入:个字符
X

X

flash交流。

TOP

 

B Color Image Link Quote Code Smilies
高级模式 | 发新话题

您需要登录后才可以回帖 登录|立即注册

快速
返回顶部
返回首页