<![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> http://www.contactu.cn/ zh-cn PBlog2 v2.4 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> http://www.contactu.cn/images/logos.gif http://www.contactu.cn/ 湖南长沙前端开发与培训-通途工作室 http://www.contactu.cn/article.asp?id=154 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> dudu@258754.cn(admin) Wed,30 Jul 2014 20:36:32 +0800 http://www.contactu.cn/default.asp?id=154 这个小插件(flash cs6+as3)是我早两年偶然一个朋友给我的。可以直接在flash中调用网页,而且页面可以自由操作,相当于HTML中的iframe。

 

原作者是:

 * @author 五斗米

 * @see http://zwwdm.com

 * @date created 2012/12/24/

 

今天一个网友偶然找到我,在项目中要用到。因此在此分享出来,以利更多需要用到的朋友。

点击这里下载  点击这里查看DEMO

 

]]>
http://www.contactu.cn/article.asp?id=131 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> dudu@258754.cn(admin) Tue,25 Jun 2013 15:23:27 +0800 http://www.contactu.cn/default.asp?id=131 这段代码的功能:就是实现一次远程验证,如果正确,则存储结果,以后再也无需验证

具体细节是:

通过本地程序使用时,发送一个登录帐号密码到远端的验证服务器。如果正确,服务器返回匹配的姓名,如果不对,返回一个“NO”字符串。

一旦接收到正确的结果,本地程序即执行写SharedObject动作,将姓名写入。以后每次在本地使用这个程序,只要SharedObject不为空,则不需要再做远程验证。

注意:发现用FLASH CS6调试模式可以直接发送数据,打包成EXE也可以,但是本地生成的SWF文件,不能直接发送数据,可能是出于安全考虑。

以下是部分代码:

XML/HTML代码
  1. package  
  2. {  
  3.     import flash.events.MouseEvent;  
  4.     import flash.events.Event;  
  5.     import flash.events.IOErrorEvent;  
  6.     import flash.display.MovieClip;  
  7.     import flash.net.navigateToURL;  
  8.     import flash.net.URLRequest;  
  9.     import flash.net.URLLoader;  
  10.     import flash.net.URLVariables;  
  11.     import flash.net.URLLoaderDataFormat;  
  12.     import flash.net.URLRequestMethod;  
  13.     import flash.events.HTTPStatusEvent;  
  14.     import flash.net.SharedObject;  
  15.     import flash.ui.Mouse;  
  16.       
  17.     public class test_so extends MovieClip  
  18.     {  
  19.           
  20.         var mydate:SharedObject;  
  21.         var myLoader:URLLoader;  
  22.         var variables:URLVariables;  
  23.         //var _fileName:String = "http://www.contactu.net/FlashRequest/Login.asp";  
  24.         var isPostSuccess:Boolean = false;  
  25.           
  26.         public function test_so()  
  27.         {  
  28.             btn1.buttonMode = btn2.buttonMode = true;  
  29.             btn2.txt.mouseEnabled = false;  
  30.             btn2.visible = false;  
  31.             initSO(); //判断本地身份  
  32.             variables = new URLVariables();  
  33.             btn1.addEventListener(MouseEvent.CLICK, send_info);  
  34.         }  
  35.           
  36.         private function initSO():void  
  37.         {  
  38.             mydate = SharedObject.getLocal("txtAttribute", "/");  
  39.             if (mydate.size != 0)  
  40.             { //判断是否有数据  
  41.                 var _name = mydate.data["test"];  
  42.                 txt_feed.appendText(_name + "已经登录" + "\n");  
  43.                 btn2.visible = true;  
  44.                 btn2.txt.text = "以" + _name + "身份进入";  
  45.             }  
  46.             else  
  47.             {  
  48.                 txt_feed.appendText("未登录,不能进入" + "\n");  
  49.             }  
  50.         }  
  51.           
  52.         private function send_info(e:MouseEvent):void  
  53.         {  
  54.             txt_feed.appendText("ccc");  
  55.               
  56.             if (txt_id.text == "" || txt_pass.text == "")  
  57.             {  
  58.                 txt_feed.appendText("空帐号或密码" + "\n");  
  59.                 return;  
  60.             }  
  61.             variables.id = txt_id.text;  
  62.             variables.pass = txt_pass.text;  
  63.               
  64.             var loadUrl:URLRequest = new URLRequest(txt_domain.text);  
  65.             loadUrl.method = URLRequestMethod.GET;  
  66.             loadUrl.data = variables;  
  67.               
  68.             myLoader = new URLLoader();  
  69.             myLoader.dataFormat = URLLoaderDataFormat.TEXT;  
  70.             myLoader.addEventListener(Event.COMPLETE, sendComplete);  
  71.             //myLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);  
  72.             myLoader.addEventListener(IOErrorEvent.IO_ERROR, loadError);  
  73.             myLoader.load(loadUrl);  
  74.         }  
  75.           
  76.         //如果发送成功  
  77.         private function sendComplete(e:Event):void  
  78.         {  
  79.             txt_feed.appendText(">>>本次远程返回数据:" + e.target.data + "\n");  
  80.               
  81.             //保存文件数据  
  82.             if (e.target.data == "NO")  
  83.             {  
  84.                 txt_feed.appendText("aaa");  
  85.                 txt_feed.appendText("帐号或密码有误!" + "\n");  
  86.             }  
  87.             else  
  88.             {  
  89.                 txt_feed.appendText("bbb");  
  90.                 mydate = SharedObject.getLocal("txtAttribute", "/");  
  91.                 mydate.data["test"] = e.target.data;  
  92.                 mydate.flush();  
  93.                   
  94.                 initSO();  
  95.             }  
  96.         }  
  97.           
  98.         function httpStatusHandler(e:Event):void  
  99.         {  
  100.             txt_feed.appendText("httpStatusHandler:" + e);  
  101.         }  
  102.           
  103.         private function loadError(e:Event):void  
  104.         {  
  105.             txt_feed.appendText("\n写出失败!");  
  106.         }  
  107.       
  108.     }  
  109.   
  110. }  

 

]]>
http://www.contactu.cn/article.asp?id=125 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> dudu@258754.cn(admin) Sat,25 May 2013 17:00:48 +0800 http://www.contactu.cn/default.asp?id=125

 功能点包括:

1、九个区块的位置坐标自定义
2、鼠标效果,通过2张背景底图搞定
3、链接自定义
4、自动循环点亮菜单子区块,当鼠标指上去时可暂停
 
用到了greensock.TweenMax以及greensock.TimelineMax;
点击这里下载源代码
点击这里下载greensock类
]]>
http://www.contactu.cn/article.asp?id=116 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> dudu@258754.cn(admin) Fri,29 Mar 2013 15:25:44 +0800 http://www.contactu.cn/default.asp?id=116 点击下载此文件

 

在天地会下的,主要功能包括:

左截字符串 

右截字符串  

中截字符串 (3种方式) 

获取字符串的长度

字符型强制转换为数值

判断该字符创是否全是数字 

将该字符强制转换为字符串 

字符判断是否为空 

字符转小写 

字符转大写 

取当前年 

取日 

返回当前日期 

判断身份证是否合法 

去除字符串首尾空格 

 判断字符串中是否有中文 

将15位身份证转换成18位身份证 

获取身份证上的日期 

字符串定位 (子字符串在母字符串的位置)

去绝对值 (字符型转数字并去绝对值)

字符型转数字并向下取近似值

]]>
http://www.contactu.cn/article.asp?id=114 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> dudu@258754.cn(admin) Mon,25 Mar 2013 09:00:10 +0800 http://www.contactu.cn/default.asp?id=114 前贴提到的那个mini站类库工具类的原作者 a-jie给了我热情的回复,并提供了此类库的一些FLA的DEMO文件,对于更好的理解这些工具类的使用,非常有用。

根据原作者意愿,本下载服务已经中止,有需要的开发者请直接联系本站长

 

]]>
http://www.contactu.cn/article.asp?id=113 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> dudu@258754.cn(admin) Wed,20 Mar 2013 09:09:50 +0800 http://www.contactu.cn/default.asp?id=113 我是在天地会网站上找到的这套工具库,第一眼我就明白,这就是我一直在找的东西!小型FLASH编程的好工具类

我在从一个菜鸟慢慢转变为小aser的过程中,我一直在找一些“平易近人”的工具类。而国外的大牛们写的那种高深的东西,往往是用来解决更专业的问题,比如3D、仿真、物理这些,但是在我们技术缺乏的中国,目前最缺少的还是这些解决日常问题的小类,比如怎么快速的给一堆元件赋值,比如怎么快速定义按钮行为......因为我们最日常的工作,还是写一些小规模的FLASH网站,然后卖给一些要求不高的客户。速度是重要的,创意、设计啥的,倒是次要的东西。

必须要感谢原作者的无私奉献。我看到他在天地会的这个资源分享贴响应廖廖,而群里那些菜鸟还是整天在叫嚷着“没有好教材”,“没有好源码”,真是元宝丢在大街上没人捡的感觉呀。昨天晚上我花了一个多小时,简单的测试了几个工具类,就已经大呼过瘾,比如这个:

XML/HTML代码
  1. addChildAndInit(this, new LogoMC,{x:100,y:100},20);  
  2.   
  3. //一句代码,可以完成原生代码很多句的功能,new一个新类-赋予xy位置及深度...  

作者在每个子类中,都添加了简单说明和代码例句,非常的友善!

github的下载地址

 

------------------------------------------------

以下是作者原文:

 

********************************************************************

          Copyright (c) 2009, www.a-jie.cn

               All rights reserved.

 

 msn: a-jie.cn@msn.com

 qq : 12688191

******************************************************************** 

                                                            

类-结-构(一部分没有在下表列出)    

********************************************************************

   tool

xml:

XMLLoader.as         ---------------------- 加载xml的类

xmlToArray.as        ---------------------- xml转换Array

util:

ArrayUtil.as         ---------------------- 数组辅助功能

setFrameout.as       ---------------------- 延迟(帧)函数

clearFrameout.as     ---------------------- 清除延迟函数

delayOut.as          ---------------------- 延迟(秒)函数

EnterFrame.as        ---------------------- 类似as2enterFrame

NumberUtil.as        ---------------------- 逐个递加数字

setFor.as       ---------------------- for循环函数体

tryRun.as       ---------------------- try catch运行函数

url:

Address.as         ---------------------- 设置为首页/添加收藏夹/获取地址栏地址并且复制到右键

URL.as         ---------------------- 跳转html/获取文件地址 

Cookies.as         ---------------------- shareObject类似cookies

HtmCookies.as         ---------------------- 真实cookies

Javascript.as       ---------------------- javascript交互

HTTPS.as       ---------------------- url随机数

SNS.as       ---------------------- 各个sns网站的分享

timeline:

prevPlay.as         ---------------------- 反向/正向播放mc

Timeline.as       ---------------------- 处理时间轴

time:

TimeClick.as        ---------------------- 计时器

TimeCount.as       ---------------------- 计数器

TimeFormat.as       ---------------------- 格式化时间

text:

BitmapText.as       ---------------------- bitmap文本副本

setDText.as         ---------------------- 快速设置动态文本

replaceAll.as       ---------------------- 替换字符

MiniFont.as         ---------------------- mini字体库

test:

MainLoad.as         ---------------------- 测试框架

third:(部分第三方类)

stage:

AutoSize.as         ---------------------- 自适应屏幕尺寸

FullScreen.as       ---------------------- 控制全屏

StageInit.as        ---------------------- 初始化场景

object:

AClass.as           ---------------------- 获取对象所属的类

all.as          ---------------------- 全体对象调整

some.as         ---------------------- 遍历并调用对象集属性

move:

BasicMove.as        ---------------------- 简单的运动方式

mouse:

Menu.as         ---------------------- 右键菜单

MouseCheck.as       ---------------------- 检查鼠标是否移动

load:

GroupLoader.as      ---------------------- 列队加载一组元素

MCLoader.as         ---------------------- loader组件

ProLoader.as        ---------------------- 预加载

geom:

Rectangular.as      ---------------------- 控制目标在矩形区域内

RectangleUI.as.as   ---------------------- RectangleUI工具条

events:

BasicEvent.as       ---------------------- 基本事件模式

ButtonEvent.as      ---------------------- button相关的事件

FLVEvent.as         ---------------------- FLV相关的事件

LoadEvent.as        ---------------------- load相关的事件

ListEvent.as        ---------------------- list相关的事件

EventManager.as     ---------------------- 强大的事件管理器

draw:

Painter.as          ---------------------- 绘图类

Pen.as       ---------------------- 画笔

SmoothCurve.as      ---------------------- 生成光滑曲线

debug:

Debug.as            ---------------------- 5K Debug

trace.as       ---------------------- 覆写trace

traced.as       ---------------------- traced输出

data:

DataInterface.as    ---------------------- 简化flash和后台交互

ValueMode.as       ---------------------- 后台模式

ListPage.as       ---------------------- 实现flash列表相关功能

display:

addChildAndInit.as  ---------------------- 添加显示对象并初始化

ContainerMovieClip.as ------------------ movieClip容器,一般用来存放加载的

DisplayGroup.as     ---------------------- 显示对象群组

DisplayHelper.as    ---------------------- 处理显示对象简便操作

hitTestObjects.as   ---------------------- 像素级碰撞检测

LoaderSprite.as   ---------------------- 处理Loader相关的Sprite

Registration.as   ---------------------- 变换注册点

SubMovieClip.as   ---------------------- movieClip基类

QMC.as   ---------------------- 快速MovieClip

--bitmap:

GoodBmp.as ---------------------- 新的bitmap

--color:

Color.as ---------------------- 颜色工具

--quick:

QuickMovieClipArray.as ---------------------- 保存QMC对象

--shell:

CoreShell.as ---------------------- 控制显示对象的外壳

fp10(仅支持fp10.0以上版本):

--a3d:(--A3D--)

A3D.as ---------------------- 参数配置

Ball.as ---------------------- 球

Box.as ---------------------- 盒子

Camera3D.as ---------------------- 摄像机

Container3D.as ---------------------- 3d容器

Plane.as ---------------------- 基本面

Scene3D.as ---------------------- 主场景

--core:

FP10Object3d.as       ---------------------- 基本3d对象

IFP10Object3d.as       ---------------------- 3D对象接口

Light.as       ---------------------- 灯光

Material.as       ---------------------- 材质

--move:

Move.as       ---------------------- 运动制作器

OrderTool.as       ---------------------- Z轴排序器

zOrder.as       ---------------------- Z轴排序函数

ToolMaker.as       ---------------------- 3d工具制造器

fp10(仅支持fp10.0以上版本):

--upfile

JPGLoader.as ---------------------- 本地图片上传保存

JPGEncoder.as ---------------------- 压缩为jpg

PNGEncoder.as ---------------------- 压缩为png

component:

--button:

BasicButton.as ---------------------- 基本的按钮MODEL

AssociativeButton.as ---------------------- 串联按钮MODEL.

ParallelButton.as ---------------------- 并联按钮MODEL

LabelButton.as ---------------------- 加标签的按钮

TwoFaceButton.as ---------------------- 两帧型按钮

ButtonManage.as ---------------------- 按钮统一管理器

--interactive:

DragComponent.as ---------------------- 拖动功能元件。

MouseFollow.as ---------------------- 一组对象的鼠标跟随

MouseFollowBg.as ---------------------- 跟随鼠标的背景

--media:

FLVVideo.as ---------------------- FLV播放器

MP3Sound.as ---------------------- 简单mp3播放器

--mouse:

Cursor.as ---------------------- 自定义鼠标指针

--text:

InputText.as ---------------------- 设置输入文本

Typewriter.as ---------------------- 打字效果

--ui:

BlackMask.as ---------------------- 全屏遮罩

TipBox.as ---------------------- 提示框TipBox

ScrollPane.as ---------------------- 滚动窗口组件

SliderLine.as ---------------------- 滚动条组件

 

 

 

]]>
http://www.contactu.cn/article.asp?id=111 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> dudu@258754.cn(admin) Mon,18 Feb 2013 07:51:22 +0800 http://www.contactu.cn/default.asp?id=111  在国外的网站看到很炫的烟花效果,于是自己模仿了一个。因为只是练习一下时间线操作,因此对于细节没有追求到极致。看起来国外作品的散开点更清晰,另外烟花的随机元素更多。我这个只是简单的控制了一下几个随机因素。

国外作品:

 

我的仿作(点击舞台放烟花):

 

XML/HTML代码
  1. package {  
  2.       
  3.     import com.greensock.TweenMax;  
  4.     import com.greensock.TimelineMax;  
  5.     import com.greensock.plugins.*;  
  6.     import com.greensock.easing.*;  
  7.     import com.greensock.loading.*;  
  8.     import com.greensock.layout.*;  
  9.     import com.greensock.events.LoaderEvent;  
  10.       
  11.     import flash.events.MouseEvent;  
  12.     import flash.events.Event;  
  13.     import flash.display.MovieClip;  
  14.     import flash.display.Stage;  
  15.     import flash.display.StageDisplayState;  
  16.     import flash.display.StageAlign;  
  17.     import flash.display.StageScaleMode;  
  18.     import index.base.func.Random;  
  19.       
  20.     public class fireworks extends MovieClip {  
  21.           
  22.         public var id:int;  
  23.         var tl:TimelineMax = new TimelineMax({paused: true});  
  24.         var tt:Number = 1;  
  25.         var _a:MovieClip;  
  26.           
  27.         public function fireworks() {  
  28.             TweenPlugin.activate([FrameLabelPlugin, VisiblePlugin,ScalePlugin,BlurFilterPlugin]);  
  29.             _a = this.getChildByName("a") as MovieClip;  
  30.             _a.core.gotoAndStop("end");  
  31.             stage.addEventListener(MouseEvent.CLICK, clickH);  
  32.               
  33.         }  
  34.           
  35.         private function clickH(e:MouseEvent):void   
  36.         {  
  37.             _a.x = mouseX;  
  38.             _a.y = mouseY;  
  39.             blast();  
  40.         }  
  41.           
  42.           
  43.         //爆开  
  44.         function blast():void {  
  45.             TweenMax.fromTo(_a.core, .6, { frameLabel:"start" }, { frameLabel:"end" } );  
  46.               
  47.             //炸开  
  48.             for (var i:int = 0; i < 30; i++)   
  49.             {  
  50.                 var _b:MovieClip = new star();  
  51.                 _a.addChild(_b);  
  52.                 _b.rotation = Random.range(0, 360);  
  53.                 TweenMax.to(_b, 0, { tint:Random.color(), scale:Random.range(.5, 2)  
  54.                 , glowFilter: { color:0xffffff, blurX:18, blurY:18, strength:30, alpha:.4 }  
  55.                 } );  
  56.                 TweenMax.to(_b.core, .6, {scale:0.5,x:Random.range(80,260,false) } );  
  57.                 TweenMax.to(_b, .6, {alpha:0,y:"50",delay:.4 } );  
  58.                   
  59.             }  
  60.               
  61.         }  
  62.           
  63.   
  64.       
  65.     }  
  66.   
  67. }  

 

]]>
http://www.contactu.cn/article.asp?id=105 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> dudu@258754.cn(admin) Wed,26 Sep 2012 21:09:36 +0800 http://www.contactu.cn/default.asp?id=105 终于跑通了第一个3D范例。来自away3d的官方示例。

更多范例可以到这里下载:https://github.com/away3d

群里另外一兄弟提供了一个挺好的3D翻转类的站点:http://www.13flo.com/

这效果,就是我的短期目标。

 

]]>
http://www.contactu.cn/article.asp?id=104 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> dudu@258754.cn(admin) Sun,02 Sep 2012 15:54:51 +0800 http://www.contactu.cn/default.asp?id=104 很精干的代码实现背景连续滚动,没啥技术含量,主要借助了blitMask的功能。

XML/HTML代码
  1. package {   
  2.     import flash.display.MovieClip;   
  3.     import com.greensock.TweenMax;   
  4.     import com.greensock.BlitMask;   
  5.     import com.greensock.easing.Linear;   
  6.        
  7.     public class main extends MovieClip {   
  8.            
  9.         public function main(){   
  10.             var stagestageW = stage.stageWidth;   
  11.             var stagestageH = stage.stageHeight;   
  12.             var _bg:MovieClip = this.getChildByName("bg") as MovieClip;   
  13.             _bg.x = 0;   
  14.             _bg.y = stageH;   
  15.             _bg.rotation = 45;   
  16.             _bg.alpha = .3;   
  17.                
  18.             var blitMask:BlitMask = new BlitMask(_bg, 0, 0, stageW, stageH, true, true, 0xccffcccc, true);   
  19.             addChildAt(blitMask, 0);   
  20.             blitMask.bitmapMode = true;   
  21.             TweenMax.to(_bg, 12, { x:stageW,y:0 , ease:Linear.easeNone,repeat:-1,yoyo:true } );   
  22.         }   
  23.     }   
  24. }   
  25.   

 

]]>
http://www.contactu.cn/article.asp?id=97 <![CDATA[湖南长沙前端开发与培训-通途工作室 - flash技术探讨]]> dudu@258754.cn(admin) Wed,20 Jun 2012 11:06:51 +0800 http://www.contactu.cn/default.asp?id=97 使用swf开源程序与使用网上众多的电子杂志生成软件(比如PocoMaker、zmaker、iebook这些)的区别是,有源程序生成的可以自己调节配置和细节,可以直接生成分步加载的swf直接放到网站上运行,也可以打包成EXE发行。而生成软件一般都只能生成exe文件,并且免费版往往带了版权信息。

最近因为项目需要,在网上测试下载了几套as3翻书程序的源码。经过对比,最好的就是以下两套(均有源码)。


前者是国外的商业程序,商业版据说要35美元,功能非常齐全而且强大。

1、有专门的官网进行技术支持、资料齐全。

2、所有参数和内容均由XML进行外部管理,支持图片、swf。

3、带有单页放大、拖动、页码管理、目录索引等众多功能,基本上电子书需要的功能,它都有。

其它小功能很查看以下示例。

官网:http://www.oxylusflash.com/flashfiles/true-3d-flip-book-with-cms-as3-01

本站演示:http://www.contactu.cn/case/3d-flip-book

4、但有一个非常大的缺点!不支持内容的双页并版排列(这一点是原作者在官网上回复的),就是在一个连续的画面内(左右两页),使用一个完整的图像或是swf,这一点对于需要大画面并版演示的内容来说,非常不利。而下者可以做到这一点。


这一套是作者有明确的版权信息:

* authorName : 黎新苑 - www.6dn.cn
* QQ :160379558(小星@6dn)
* MSN :xdngo@hotmail.com
* email :6dn@6dn.cn
* webpage :       http://www.6dn.cn

本站演示地址 :http://www.contactu.cn/case/6dn-flip-book/

这套程序功能虽然没有上面那套商业程序强,但也具备了常用的所有功能。我只对两个重点问题进行了测试:

1、上面提到的并版演示的功能,这套程序用双页码来解决了(原作者在天地会回复的)。就是在xml中文件中使用

XML/HTML代码
  1. <page src="2.jpg"/><page src="2.jpg"/>  

这样的句了,实现了并版。比如我的演示程序中的第2页,那两个转动的5角星。

2、关于外部引用的swf的互动问题。这套程序的默认调用模式下,点击画面就会导致翻页行为,而不是优先响应swf中的自带互动。这是一个大问题。

我研究了一下源码,设法屏蔽了翻页行为,要翻页只能使用下面的翻页按钮,这样对于一些有swf互动展示的用户,是非常有用的。


总结,以上两套各有优劣。如果要做为单纯的资料系统,使用前者是非常专业的。

如果要进行大量的互动、并版展示的客户,则只能使用后者了。

顺便打个广告,本工作室可以承接电子杂志、电子书发布、改造业务。

]]>