收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 2402|回复: 3

[AS1&2] 随机调用库中六个元件并排成两行,如何做到?

[复制链接]
发表于 2017-11-4 22:39:03 | 显示全部楼层 |阅读模式
比如库中有20个同类的元件,想实现点击一次按钮,每次就随机换六个出现在舞台上。

或者,能20个都一起出现,并点按钮就变换位置也行。(就像银行网站登录输入密码那样,点一下,各数字位置变换)

AS2,AS3写的都行。现在flash太冷了,除了这里,真不知道哪里还有提问flash问题的地方。感慨万千啊。

发表于 2017-11-6 16:44:49 | 显示全部楼层
  1. package
  2. {
  3.         import flash.display.MovieClip;
  4.         import flash.events.Event;
  5.         import flash.events.MouseEvent;
  6.        
  7.         public class Main extends MovieClip
  8.         {
  9.                 private var _btnList:Vector.<TextButton>;
  10.                
  11.                 public function Main()
  12.                 {
  13.                         if (stage) init();
  14.                         else addEventListener(Event.ADDED_TO_STAGE, init);
  15.                 }
  16.                
  17.                 private function init(e:Event = null):void
  18.                 {
  19.                         removeEventListener(Event.ADDED_TO_STAGE, init);
  20.                        
  21.                         _btnList = new Vector.<TextButton>();
  22.                        
  23.                         var btn:TextButton;
  24.                         for (var i:int = 0; i < 20; i++)
  25.                         {
  26.                                 btn = new TextButton();
  27.                                 btn.buttonMode = true;
  28.                                 btn.labName.mouseEnabled = false;
  29.                                 btn.labName.text = i.toString();
  30.                                 _btnList.push(btn);
  31.                                 addChild(btn);
  32.                         }
  33.                        
  34.                         randomLayout();
  35.                        
  36.                         addEventListener(MouseEvent.CLICK, onClick);
  37.                 }
  38.                
  39.                 private function randomLayout():void
  40.                 {
  41.                         _btnList.sort(function():int
  42.                         {
  43.                                 return Math.random() < 0.5 ? -1 : 1;
  44.                         });
  45.                        
  46.                         var btn:TextButton;
  47.                         for (var i:int = 0; i < _btnList.length; i++)
  48.                         {
  49.                                 btn = _btnList[i];
  50.                                 btn.x = 10 + (btn.width + 5) * int(i % 4);
  51.                                 btn.y = 10 + (btn.height + 5) * int(i / 4);
  52.                         }
  53.                 }
  54.                
  55.                 private function onClick(e:MouseEvent):void
  56.                 {
  57.                         var tar:Object = e.target;
  58.                         if (tar != null)
  59.                         {
  60.                                 if (tar is TextButton)
  61.                                 {
  62.                                         randomLayout();
  63.                                 }
  64.                         }
  65.                 }
  66.                
  67.         }
  68.        
  69. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2017-11-6 16:45:24 | 显示全部楼层
  1. package
  2. {
  3.         import flash.display.MovieClip;
  4.         import flash.events.Event;
  5.         import flash.events.MouseEvent;
  6.        
  7.         public class Main extends MovieClip
  8.         {
  9.                 private var _btnList:Vector.<TextButton>;
  10.                
  11.                 public function Main()
  12.                 {
  13.                         if (stage) init();
  14.                         else addEventListener(Event.ADDED_TO_STAGE, init);
  15.                 }
  16.                
  17.                 private function init(e:Event = null):void
  18.                 {
  19.                         removeEventListener(Event.ADDED_TO_STAGE, init);
  20.                        
  21.                         _btnList = new Vector.<TextButton>();
  22.                        
  23.                         var btn:TextButton;
  24.                         for (var i:int = 0; i < 20; i++)
  25.                         {
  26.                                 btn = new TextButton();
  27.                                 btn.buttonMode = true;
  28.                                 btn.labName.mouseEnabled = false;
  29.                                 btn.labName.text = i.toString();
  30.                                 _btnList.push(btn);
  31.                                 addChild(btn);
  32.                         }
  33.                        
  34.                         randomLayout();
  35.                        
  36.                         addEventListener(MouseEvent.CLICK, onClick);
  37.                 }
  38.                
  39.                 private function randomLayout():void
  40.                 {
  41.                         _btnList.sort(function():int
  42.                         {
  43.                                 return Math.random() < 0.5 ? -1 : 1;
  44.                         });
  45.                        
  46.                         var btn:TextButton;
  47.                         for (var i:int = 0; i < _btnList.length; i++)
  48.                         {
  49.                                 btn = _btnList[i];
  50.                                 btn.x = 10 + (btn.width + 5) * int(i % 4);
  51.                                 btn.y = 10 + (btn.height + 5) * int(i / 4);
  52.                         }
  53.                 }
  54.                
  55.                 private function onClick(e:MouseEvent):void
  56.                 {
  57.                         var tar:Object = e.target;
  58.                         if (tar != null)
  59.                         {
  60.                                 if (tar is TextButton)
  61.                                 {
  62.                                         randomLayout();
  63.                                 }
  64.                         }
  65.                 }
  66.                
  67.         }
  68.        
  69. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-5 22:12:24 | 显示全部楼层

很抱歉,来晚了。我以为没人来回答这个问题了。
代码我还没有测试行不行,但不管成功与否,我都要谢谢你。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )  

GMT+8, 2020-9-30 22:38 , Processed in 0.110075 second(s), 7 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表