- 浏览: 26991 次
- 性别:
- 来自: 成都
最新评论
-
maodage:
博主,如果C里写有保护类型的方法或属性,导出SWC后还保留着吗 ...
使用SWIG创建swc之二(C++类的调用) -
ha397666:
留一手嘿~
Feathers之component解析 -
ha397666:
已婚,羡慕,加油。
我的自白书 -
ha397666:
看了中文教程,然后就被坑到这来了。多谢楼主!
Feathers之改变Button皮肤
文章列表
回顾过往我们总会发现, 在职的我们总是花很多的时间做了一些无谓的垃圾工作。
农民们在摘种果树的时候好像都会采取一些做法。那就是不时的剪掉些叶子。为什么呢?因为放任所有叶子自由生长的话会消耗较多 ...
前些日子写了android上新浪微博与腾讯微博带图分享的ane, 到现在已经有几个人询问和了解如何去使用。这让我感到很开心, 我也很乐于解答一些疑问。另外有位朋友建议弄一个微信的, 我尝试了下。貌似对于android上的微信需要审核通过了才能调试, 这样我有点郁闷, 我并没有任何应用可供审核的。
要说没什么可供审核也并不完全正确, 之前的时候自己写过2个闯关类的益智小游戏。程序是完成了, 可我总是停留在关卡设计的部分。
我琢磨着为什么会这样, 最后得出的结论是: 没兴趣。也许哪天我女儿长到可以玩的年龄的时候我会去花心思为她完成。老婆对我的态度一直是支持我做自己 ...
最近在用flash写小游戏,突然发觉各大社区平台都提供了android和iphone的sdk, 可就是没有AS3.0的(虽说腾讯提供了air的SDK, 可摸摸良心---那能用吗?)
所以结论是"自己动手丰衣足食",了解了在手机上的授权机制之后我发现 ...
Component解析
1.构造函数: Component的构造函数一般是什么都不做的, 总是在initialize()函数中进行初始化.
2.initialize():第一次被添加到显示列表的时候被调用, 且在整个生命周期中只会被调用一次, 我们需要重写这个方法做我们想做的初始化.
3.invalidate(): 当Component某个属性发生改变并且该属性会影响显示的时候, invalidate()方法就该被调用.
4.draw(): Starling进行渲染的时候这个方法就会被调用, 我们需要重写这个方法以告知如何显示我们的UI
5.isI ...
Component的生命周期,她从创建到销毁都会经历好几个阶段
1.实例化: 通常是通过new创建, 还没有被添加到舞台上, 属性可能会被改变, 但是她不会处理这些属性直到她被添加到舞台上(我认为这点很重要,请牢记), 这样确保了她不会频繁的调用绘制处理.
2.初始化: 当她被添加到舞台上的时候, initialize()函数会被调用, 她会做第一次验证, 如果每个属性都已经是无效状态, 那么她会做一次全面的绘制.
3.验证: 执行draw()函数的时候, 她会根据已经改变的属性进行相应的显示处理. 如果她的尺寸没有被指定, 她会自动的计算理想的高和宽, 这些高和宽会被set ...
同学们下午好, 在前一篇教程中我们已经了解了基本的SWIG创建SWC的过程, 今天我捣鼓了大半天研究了如何调用C++的类, 接下来说说过程吧.
首先编写C++类, 分别是example.h和example.cpp, 如下:
/**example.h*/
class TestCC
{
public:
TestCC(double, double);
double x, y;
virtual double add(void);
virtual void set(double, double);
void copyTo(TestCC*); ...
大致过程
1.创建SWIG接口文件
2.处理接口文件生成相应的AS文件和C/C++文件
3.将as文件编译成abc文件
4.实现接口
5.打包
案例1: 我要在AS中使用C的加法, 通过add(value1, value2)调用
编写SWIG接口文件, 建个文件随便命名(拓展名为i), 这里假定是example.i, 用编辑器打开文件, 写入
%module AddExample
%{
extern int add(int value1, int value2);
%}
extern int add(int value1, i ...
如之前的文章中介绍, 我们知道了如何设置Button的皮肤
http://kboctopus.iteye.com/admin/blogs/1846801
然而当Button被添加在Header中的时候发现又不行了,这是为什么呢?
在细看代码后我发现这是feathers的优化机制导致的, 如前文描述,我们对Button的设置需要在button被addChild之后设置才会生效, 看了代码就会发现header中的元素是在draw的时候才会被添加, 所以现在一切都明朗了,我们要做的就是更换一下设置代码的位置,就像这样
override protected function draw() ...
关于Feathers中Button是如何自定义个性皮肤原教程中是这样描述的
绿色部分是原教程,我尝试后发现无效果,实际上是因为Button在addChil的时候会把theme中的默认皮肤方法赋值给stateToSkinFunction, 所以要使我们设置生效的方法就是在addChild我们的button之后将stateToSkinFunction赋值为null。图中红色框框部分是我编辑上去的, 同学们可以尝试下应该可以生效。
另外其实我们也可以直接设置stateToSkinFunction,就像这样:
button.stateToSkinFunction = function(t ...
在编写android项目时,我们可以通过Log去查看程序的执行状态和打印信息。
然而在ANE中这些Log的内容是无法通过控制台看到的,也就是说程序在android部分出错了我们很难知道程序是在那一步出错了。那么应该用什么来替代Log呢? 日前我就遇到了这样的问题,我的解决方案是是使用Socket。
这个方法主要包含2个部分
1.客户端--------代码会写在android部分
2.服务器--------任何能实现SocketService的都可以,由于对flash熟悉且对性能方面无要求我使用的是air
服务器的实现是简单到不能再简单将收到的信息打印出来,由于代码很少我直 ...
昨天下午纠结了挺长时间的一个问题,首先是如下代码
weekLab = new Label();
weekLab.textRendererProperties.textFormat = new TextFormat("Arial", 30, 0xffffff, null, null, null, null, null, "center");
weekLab.text = "本周消费: 0¥";
this.addChild(weekLab);
可是发现字体的设置怎么也不起作用。
于是今早上静下心来查看它的源代码,发 ...
ANE调用原生对话框
- 博客分类:
- ANE笔记
今天笔者研究了ANE调用android原生对话框,主要是想着做我的账本软件的时候日期控件用feathersUI做很麻烦。顺带的一起做了AlertDialog/ProgressDialog/Toast的调用, 加上DatePickerDialog一共就是4个原生组件的调用。
发现个有意思的事情是Toast的调用有个地方与众不同:
Toast.makeText(arg0.getActivity().getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
注意看第一个参数,其他三个组件的调用基本都是下面这样的:
ne ...
在使用NDK进行图像处理的时候或许会用到android/bitmap.h当中的内容,例如AndroidBitmap_getInfo/AndroidBitmap_lockPixels/AndroidBitmap_unlockPixels等等。
我在eclipse中集成NDK的项目中使用了这些内容却出现了错误
"undefined reference to AndroidBitmap_getInfo" "undefined reference to AndroidBitmap_lockPixels" "undefined referenc ...
如题
其实并非不可用,而是在FB4.5和4.6的DEBUG模式下不可用。
那怎么才能使用呢?
请在非DEBUG模式下使用,例如按下F5刷新页面!
经尝试, worker工作正常, bytearray可在进程间共享。
听说在FB4.7中可用不知道是不是真的? 4.7太大了不怎么想下载,有1G!
另外感谢wskeee同学的实践, 我也是看了他的帖子才发现的
http://bbs.9ria.com/thread-168873-1-1.html
我们在做开发时经常会遇到这种情况:
a.swf被添加到网页中, a.swf和html页面同时存在滚动条, 项目经理提了一个BT的需求---处理a.swf鼠标滚动的时候html页面不执行滚动, 反之则执行html页面的滚动!
应该怎么做呢?
方法1:
1.鼠标移入a.swf滚动区域的时候: 告知JS移除浏览器鼠标滚动监听.
2.鼠标移出a.swf滚动区域的时候: 告知JS添加浏览器鼠标滚动监听.
3.a.swf的wmode设置为"window".
总结: wmode设置为"window"可能会不满足项目需求, 这使得a.swf遮 ...