随笔-159  评论-114  文章-7  trackbacks-0
 

1、dataProvider
     在Adobe ActionScript 3.0里面的定义如下:
    要查看的数据集。此属性允许您将大多数类型的对象用作数据提供程序。如果将 dataProvider属性设置为 Array,则会将其转换为 ArrayCollection。如果将该属性设置为 XML对象,则会将其转换为仅包含一个项目的 XMLListCollection。如果将该属性设置为XMLList,则会将其转换为 XMLListCollection。如果将该属性设置为实现 IList 或 ICollectionView接口的对象,则可直接应用此对象。受转换操作的影响,在您获取 dataProvider属性时,该属性值将始终为 ICollectionView,所以此值不一定是您设置的对象类型。如果要修改数据提供程序中的数据,则了解以下行为非常重要:可能不会检测对原始数据所做的更改,但将检测对从 dataProvider属性获取的 ICollectionView 对象所做的更改。默认值为 null.此属性可用作数据绑定的源。
    上面那一大堆的东西其实就说明以下几点:
    a、凡是具有dataProvider的组件,都可以将Array、XML等内容作为数据源。
    b、将这些作为数据源的内容“自动”绑定并显示在这些控件上面。
    所以通常的做法,当Flex获取了外部数据后,可以将其直接赋值为dataProvider,然后通过一些设定,就可以在这些组件上面显示数据了。
    关于这个例子我就不在这里复述了,大家可以自行去找一下,或者直接看这里的内容:http://livedocs.adobe.com/flex/3_cn/mx/controls/ComboBox.html#includeExamplesSummary

2、itemRenderer项目渲染器)及其data属性。
     itemRenderer的作用就是可以自定义一些组件的项目显示效果,例如我们熟知的Combobox、List、DataGrid等都具有这样的属性,也就是说,我们可以利用itemRenderer来改善ComBoBox里面的下拉的显示效果。当然,List、DataGrid也是这样的。
     当ComboBox中自定义了一个渲染器后,同时使用dataProvider的方式绑定了一个数据源,这个时候,如何与我们自定义的渲染器里面的item发生作用呢?就是使用data方式。
     也就是说,dataProvider可以绑定数据到UI、如果这个组件使用了自定义渲染器,那么就可以使用data.XXX的方式获取到dataProvider里面的数据。

okay,以上介绍的两个知识点是关于Flex组件的数据处理能力,其中dataProvider可以把Array、XML等内容作为数据源直接绑定并显示到UI上面,而itemRenderer里面的data是实现组件与其渲染器之间的数据处理。

下一篇的内容是关于Flex与后台进行通讯的常见的几种方式:HTTPService、WebService、Remote等方式,而通过这几种方式可以轻松的让一些例如Java、C#、Python、Ruby、PHP等主流编程语言为Flex所服务:)

附加:
关于dataProvideritemRendererdata的具体用法有些抽象,因此我特此列举一个例子来说明一下。
这是一个HorizontalList组件,而且其中它的itemRenderer=ToolBoxRenderer,想让我们看一下HorizontalList的片段代码:
<mx:HorizontalList id="myHorizontalList" itemRenderer="ToolBoxRenderer">
         <mx:dataProvider>
             <mx:Array>
                   <mx:Object tooltip= "rubber" styleName="rubber" language="{ _language }"/>
             </mx:Array>
         </mx:dataProvider>
</mx:HorizontalList> 

然后是ToolBoxRenderer的片段代码:

<mx:Canvas width="30" height="30">
         <mx:Button
            width="30" height="30" 
            toolTip="{ data.tooltip }" 
            styleName="{ data.styleName }"/>
</mx:Canvas>

再让我们看看itemRenderer是如何与我们今天这个主题联系起来的。
1、在myHorizontalList中定义了一个dataProvider,通过代码可以看出是一个Array类型的变量,然后将其赋值给dataProvider。这个时候,其实就应该将数据显示到myHorizontalList上面了,这也就是dataProvider的用处。
2、在dataProvider包含的Array中,定义如下的结构:<mx:Object tooltip= "rubber" styleName="rubber" language="{ _language }"/>
3、我们不仅设定了dataProvider,还是同时设定了itemRenderer,即为ToolBoxRenderer。
4、在ToolBoxRenderer里面,定义了一个Button,同时我们使用类似于这样的方式可以取得dataProvider里面的数据:toolTip="{ data.tooltip }" 

以上就是一个非常简单,但是又非常典型的一个dataProvideritemRendererdata的用法,希望大家可以理解:)

posted @ 2010-01-04 22:26 北国狼人的BloG 阅读(1224) | 评论 (0)编辑 收藏
是直接写在包里的函数,包里没有类,只有函数,这样的函数叫函数闭包
函数在类里出现通常叫方法,


http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f54.html
函数闭包 是一个对象,其中包含函数的快照及其“词汇环境”。函数的词汇环境包括函数范围链中的所有变量、属性、方法和对象以及它们的值。无论何时在对象或类之外的位置执行函数,都会创建函数闭包。函数闭包保留定义它们的作用域,这样,在将函数作为参数或返回值传递给另一个作用域时,会产生有趣的结果。

例如,下面的代码创建两个函数:foo()(返回一个用来计算矩形面积的嵌套函数 rectArea())和 bar()(调用 foo() 并将返回的函数闭包存储在名为 myProduct 的变量中)。即使 bar() 函数定义了自己的局部变量 x(值为 2),当调用函数闭包 myProduct() 时,该函数闭包仍保留在函数 foo() 中定义的变量 x(值为 40)。因此,bar() 函数会返回值 160,而不是 8。

function foo():Function
{
   var x:int = 40;
   function rectArea(y:int):int // function closure defined
   {
       return x * y
   }  
   return rectArea;
}
function bar():void
{
   var x:int = 2;
   var y:int = 4;
   var myProduct:Function = foo();
   trace(myProduct(4)); // function closure called
}
bar(); // 160

方法的行为与函数闭包类似,因为方法也保留有关创建它们的词汇环境的信息。当方法提取自它的实例(这会创建绑定方法)时,此特征尤为突出。函数闭包与绑定方法之间的主要区别在于,绑定方法中 this 关键字的值始终引用它最初附加到的实例,而函数闭包中 this 关键字的值可以改变。有关详细信息,请参阅方法。
posted @ 2009-12-29 14:29 北国狼人的BloG 阅读(205) | 评论 (0)编辑 收藏
     摘要: 前期准备:       点击 File 菜单 -> New -> MXML Component ,然后弹出一个对话框。 在对话框中输入组件名,选择此组件继承的类型,如: Canvas , DataGrid , ComboBox …… 等。 然后选择组件的大小,点击 Finish 即可。  ...  阅读全文
posted @ 2009-12-24 16:06 北国狼人的BloG 阅读(453) | 评论 (0)编辑 收藏

as3 + java

action script 3 真不错了
posted @ 2009-12-23 16:33 北国狼人的BloG 阅读(186) | 评论 (0)编辑 收藏
表现:
使用ModuleManager去加载一个Module的时候, 所有的事件都激发不了.

代码:

  1.                 var testModule:IModuleInfo = ModuleManager.getModule('modules/pub/User.swf');
  2.                 testModule.addEventListener(ModuleEvent.READY,onModuleReady);
  3.                 testModule.addEventListener(ModuleEvent.SETUP, onModuleSetup);
  4.                 testModule.addEventListener(ModuleEvent.PROGRESS,onModuleLoading);
  5.                 testModule.load();

打个赌, ModuleEvent里所有的事件都不会被激发.


原因:

addEventListener之后, testModule的Event Listeners就可能被GC了.




解决:

不要声明局部IModuleInfo对象.


相关链接:
http://bugs.adobe.com/jira/browse/SDK-14021
https://bugs.adobe.com/jira/browse/SDK-11389

Gaurav Jain 同学说: 
"References to IModuleInfo must be maintained to keep the event listeneres alive. If the IModuleInfo is defined in function local scope the event listeners may get garbage collected. "
他表示:
"This is NAB. The weak reference was a change to fix a memory leak bug (https://bugs.adobe.com/jira/browse/SDK-9467) "

Not a bug~ 为了修复另一个bug, 牺牲这个....
posted @ 2009-12-23 16:31 北国狼人的BloG 阅读(236) | 评论 (0)编辑 收藏
as 是请求口气,比较温柔。
XML()是命令口气,比较霸道。
这个东西不听话你就不要给他好语气

as 是前面的对象如果是后面的数据类型才返回这个对象,否则返回null

这里的weather_loader.data是String类型
posted @ 2009-12-17 15:29 北国狼人的BloG 阅读(135) | 评论 (0)编辑 收藏
直接说话主要的

command属性可以执行多条命令

<sshexec host="ipAddr" username="root" command="(export LANG=zh_CN.UTF-8;/data/jdk/bin/java -jar )" password="pwd" trust="true"/>

posted @ 2009-12-14 11:29 北国狼人的BloG 阅读(541) | 评论 (0)编辑 收藏
8点前 的11月19日凌晨,我和我今生最爱的人一起看过流星雨。想到这些,我就会流泪。

posted @ 2009-11-18 22:19 北国狼人的BloG 阅读(125) | 评论 (0)编辑 收藏
Nothing succeeds like confidence.When you are truly confident,it radiates from you like sunlight,and attracts success to you like a magnet.
信心成就一切,当你真正自信时,它就像灿烂的阳光一样从你身上散发出来,就像磁铁一样将成功吸引到你身上。

It's important to believe in yourself.Believe that you can do it under any circumstances,because if you believe you can,then you really will.The belief keeps you searching for answers,which means that pretty soon you will get them.

相信自己非常重要。要相信自己无论在任何情况下都会成功。因为如果你相信你能做到,那么你就真的会做到。这种信念促使你不断的去寻找答案,而不断的探索就意味着你很快就会找到答案。

Confidence is more than an attitude. It comes from knowing exactly where you are going and exactly how you are going to get there. It comes from acting with integrity and confidence.It comes from a strong sense of purpose.It comes from a strong commitment to take responsibility,rather than just letting life happen.

信心不只是一种态度,它来源于你确切地知道自己要去干什么并且确切地知道怎么去干。它来源于正直和自信地去行动。它来源于强烈的目标感。它来源于强烈地勇于承担责任的许诺,而不是让生命放任自流。

One way to develop self-confidence is to do the thing you fear and to get a record of successful experiences behind you.

培养自信的一种方法是去做你害怕做的事情,并将它做成功。

Confidence is compassionate and understanding.It is not arrogant. Arrogance is born out of fear and insecurity,while confidence comes from strength and integrity.

信心是富有同情心和善解人意的。它一点都不傲慢自大。傲慢是由于害怕和缺乏安全感才产生的,而信心则出于坚强的决心和诚实正直。

Confidence is not just believing you can do it. Confidence is knowing you can do it.Know that you are capable of accomplish anything you want,and live your life with confidence.

信心并不是仅仅认为你可能会成功,而是确信你一定能成功。确信你有能力实现自己的愿望,并充满信心的生活着。

Anything can be achieved through focused,determined effort and self-confidence.If your life is not what you want it to be,you have the power to change it,and you must make the changes on a moment by moment basis. Live your priorities. Live with your goals and your plan of action. Live each moment with your priorities in mind. Act with your own purpose,and you will have the life you want.

如果你足够专心、坚决和自信,那么任何事都能做成。如果生活不像你预想的那样,你有力量去改变它,并且你必须一步一步的去实现这些改变。铭记你生命中最重要的事情。有目标并且有计划的去生活。为你的目标而奋斗,你就会拥有自己想要的生活
posted @ 2009-10-14 18:02 北国狼人的BloG 阅读(138) | 评论 (0)编辑 收藏
The hardest victory is over self.
最艰难的胜利是战胜自己的胜利!

     我们到底要是什么样的人生?
     充实的、成功的、善良的、充满爱心和和谐的?这些都是我们的追求,但大多数人终身辛劳却无法修成“正果”,为什么呢?
    一切的问题都出在自身:我是一切的根源!大家一定要有这样的认识。
    下面是摘自一位昨晚留言的朋友,我给这个留言加了一个题目:人生的四大黄金法则。希望大家摘抄在日记本上,并与更多的人分享。

    不妄作评判 --说话要公正客观,不说违心的话,不说对自己不利的话,不说别人的闲话,把语言的力量用到真和爱上去。(太对了!)

    不受别人影响 --别人所做的事,没有一件是因为你才去做的。别人所说的话、所做的事都是他们自己世界观和价值观的投影。不受别人言行的影响,你就能减少许多“无谓的痛苦”。(太对了!)

    不作假设 --鼓起勇气提问。把你真正想说的话表达清楚。与别人沟通得越清楚,你就越能避免误解、伤心或闹剧。单只这一个约定就能“彻底改变你的生活”。(太对了!)

    行动、尽力、投入 --你所能尽的力并不是时时都一样的。健康的时候,你能尽的力就比生病的时候要多。只要你在任何情况下都尽力而为,你就不会在事后懊悔、自责或自我审判。(太对了!)


只有自己经历过挫折,才能理解很多。我要重新振奋起来。
posted @ 2009-10-07 10:55 北国狼人的BloG 阅读(152) | 评论 (0)编辑 收藏
仅列出标题
共17页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last