徐州经济开发区APP开发需要注意哪些细节

有人用全Flash为VC++程序做过UI吗?该怎么解决 - 交互式开发当前位置:& &&&有人用全Flash为VC++程序做过UI吗?该怎么解决有人用全Flash为VC++程序做过UI吗?该怎么解决&&网友分享于:&&浏览:0次有人用全Flash为VC++程序做过UI吗?有这个想法,就是界面全是Flash,有经验的大概说说总体流程是怎么弄的呢------解决方案--------------------原则上是可行的,服务端用VC++写(数据处理交互)
客户端用flash&flash可请求http&AMF&rtmp&等协议的数据
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有AS3脚本使用flash cs6制作的UI方法 - 推酷
AS3脚本使用flash cs6制作的UI方法
之前没有接触过flash的开发,原先都不知道在flash professtional cs6制作好的UI,AS3脚本怎么个调用方法。学习后得知道两种方法:
1. flash cs6将整个fla发布为swc, 借助flashdevelop直接编译时使用;对象直接编译到swf里。
2. flash cs6发布为swf,AS3通过loader运行时加载。
第一种使用比较直接,我记录一下第二种的方法。
首先flash cs6把fla发布成swf。
AS通过Loader加载swf,在某个继承自Sprite的类里:
public class Main extends Sprite
&& &&& &private var city:S
&& &&& &private var tf:TextF
&& &&& &public function Main():void
&& &&& &&& &if (stage)
&& &&& &&& &&& &init();
&& &&& &&& &else
&& &&& &&& &&& &addEventListener(Event.ADDED_TO_STAGE, init);
&& &&& &private function init(e:Event = null):void
&& &&& &&& &removeEventListener(Event.ADDED_TO_STAGE, init);
&& &&& &&& &
&& &&& &&& &tf = new TextF
&& &&& &&& &tf.text = &init text&;
&& &&& &&& &addChild(tf);
&& &&& &&& &
&& &&& &&& &var helloLoader:Loader = new L
&& &&& &&& &var url:URLRequest = new URLRequest(&abc.swf&);
&& &&& &&& &helloLoader.load(url);
&& &&& &&& &
&& &&& &&& &helloLoader.contentLoaderInfo.PLETE, onComplete);
private function onComplete(event:Event):void
&& &&& &&& &city = event.target.content as S
// flash cs制作的根容器
&& &&& &&& &addChild(city);
&& &&& &&& &
&& &&& &&& &var btn:DisplayObject = city.getChildByName(&btn_ok&);
// 容器上的一个button,根据实例名去取这个对象
&& &&& &&& &if (btn != null)
&& &&& &&& &&& &btn.addEventListener(MouseEvent.CLICK, onClick);
private function onClick(event:MouseEvent):void
&& &&& &&& &tf.text = &click btn&;
看一下onComplete,主要在于取根容器和根据名字取某个元件的方法。
这个东西不知道的时候很迷惑,知道后,感觉非常自然简单了。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致Flash用于3D游戏UI的解决方案
我们自主研发的3D引擎在UI部分相对薄弱一些,从项目开始之初,我们就在讨论UI部分的解决方案。Flash/Flex包含极为丰富的控件和功能强大的编辑器,而且互联网上相关的资源非常多,如果能将其作为项目UI将会是很不错的选择。
总的来说目前有两种方法,一种是使用Scaleform
Gfx,一种是直接用Ole画。Scaleform有诸多限制,兼容性无法保证,后者则存在较大的运行效率问题。
本文将针对第二种方法,尽可能地提高效率,此种方法已经用于我们正在做的商业项目。
一:渲染效率
如果想将Flash用于游戏UI,背景透明是不可避免的需求。网上大量文章提出的方法是用一黑一白两种背景色画两次,然后推算出透明度,为的就是把Flash画到Texture上。这种方法不可取,因为效率太低。直接把Flash画到D3D的Framebuffer上就可以解决这个问题。虽然平均帧数会有所下降,但FPS会稳定得多,不会出现拖动滚动条时FPS降到个位数的情况。
图表 1拖动滚动条不会造成Fps急剧下降
二:处理用户输入
为了使Flash成为真正的UI,我们必须区分哪些输入要传给Flash,哪些输入要传给引擎。举个例子,当我们单击Flash的透明区域时,3D场景应该接收click消息;而当我们单击Flash上的某个按钮时,则不希望接收。遗憾的是,IOleInPlaceObjectWindowless::OnWindowMessage的返回值无法提供相关的线索。
为了满足以上需求,需要对Flash/Flex代码做点小改动。以Flex为例,我们要处理Application的mouseOver与mouseOut事件:
mouseOver="if(event.target==skin)ExternalInterface.call('Inclusive')"
//通知引擎发送消息给3D区域
mouseOut="if(event.target==skin)ExternalInterface.call('Exclusive')"&
//通知引擎不发送消息给3D区域
这里默认Application区域与3D区域相同,当然引擎部分也要做相应的处理。
图表 2引擎能正确地响应用户输入
三:与引擎的相互调用
Flash/Flex与容器的交互是通过ExternalInterface接口完成的,容器端通过
IOleInPlaceSiteWindowless::Invoke
IShockwaveFlash::SetReturnValue
IShockwaveFlash::CallFunction
与Flash/Flex交互。
参数与返回值的格式要按照Flash/Flex的规范。复杂的数据结构最好保存成XML后转成String再传,这里贴一下我们Flex中String与Object的转换代码以供参考。
static public function
GetObject(s:String):Object
var xmlDoc:XMLDocument = new XMLDocument(s);
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);
return decoder.decodeXML(xmlDoc);
static public function
GetString(o:Object,name:String):String
var s:String& = new S
var c:String& = new S
s&&&&&&&&&&&&
for (var p:String in o)
if( typeof o[p] == "object" )
&&&&&&&&&&&&&
+=GetString(o[p],p);
&&&&&&&&&&&&&
'+p+'="'+o[p]+'"';
if( c.length )
s+"&"+c+"&/"+name+"&";
return s+"/&";
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 徐州经济技术开发区 的文章

 

随机推荐