??xml version="1.0" encoding="utf-8" standalone="yes"?>自拍偷区亚洲国内自拍,亚洲情侣偷拍精品,亚洲国产成人精品久久http://m.tkk7.com/zuroc/zh-cnMon, 12 May 2025 18:26:56 GMTMon, 12 May 2025 18:26:56 GMT60Magic Linuxhttp://m.tkk7.com/zuroc/archive/2005/04/09/3037.htmlAK747AK747Sat, 09 Apr 2005 07:22:00 GMThttp://m.tkk7.com/zuroc/archive/2005/04/09/3037.htmlhttp://m.tkk7.com/zuroc/comments/3037.htmlhttp://m.tkk7.com/zuroc/archive/2005/04/09/3037.html#Feedback0http://m.tkk7.com/zuroc/comments/commentRss/3037.htmlhttp://m.tkk7.com/zuroc/services/trackbacks/3037.htmlMagic Linux团队

团队l成l构

Magic Linux 团队׃个部门组成:pȝ开发部Q网站开发部Q管理协调部?/B>


pȝ开发部

pȝ开发部负责Magic Linux的开发和l护。现在由6个小l组成,分别如下Q?BR>
1、系l文档组Q用h册的撰写和更新?


2、系l支持组Q文档翻译、问题解{、FAQ整理、用h册编写、以用户代表w䆾~写ML应用解决Ҏ{?BR>
3、系l测试组Q硬件测试、Y件测试;兼容性测试、稳定性测试、性能试、以各类用户代表w䆾q行评h?BR>
4、系l计划组Q需求调研、需求征集、反馈意见整理、需求管理和版本计划、其他发行版观察员、以各类用户代表w䆾提出需求?BR>
5、系l开发组Q安装程序开发、配|程序开发、自d用开发、错误修正和软g包维护、其他发行版UL、升U补丁包开发、版本控制?BR>
6、系l资源组QY件搜集、Y件汉化、桌面背景制作、窗口装饰制作、桌面图标制作、其他发行版观察?UL员?BR>


|站开发部

|站开发部负责Magic Linux官方|站的开发和日常l护工作。现在由2个小l组成,分别如下Q?BR>
1、网站维护组Q网站的日常l护和更新?BR>
2、网站开发组Q网站修复和开发?BR>


理协调?/H1>

理协调部主要协助不同部门和l之间的理和协调工作?BR>


AK747 2005-04-09 15:22 发表评论
]]>
例解 VC++ 6.0 实现 JNIhttp://m.tkk7.com/zuroc/archive/2005/04/07/2908.htmlAK747AK747Thu, 07 Apr 2005 05:11:00 GMThttp://m.tkk7.com/zuroc/archive/2005/04/07/2908.htmlhttp://m.tkk7.com/zuroc/comments/2908.htmlhttp://m.tkk7.com/zuroc/archive/2005/04/07/2908.html#Feedback0http://m.tkk7.com/zuroc/comments/commentRss/2908.htmlhttp://m.tkk7.com/zuroc/services/trackbacks/2908.html 
gceclub.sun.com.cn   Search:     
 
 
 

作者:陈健?/A>

作者简?/H4>

陈健明,华中师范大学|络与通讯研究所Q您可以通过chenjm2000@hotmail.com和作者取得联pR?/P>

内容摘要


JNI是JDK的一部分Q用于ؓJava提供一个本C码的接口。通过使用JNI~写的程序能够确保你的代码能够完全的UL到所有的q_。JNI使得q行在JVM虚拟Z的Java代码能够操作使用其它语言~写的应用程序和库,比如C/C++以及汇编语言{。此外JNI提供的某些APIq允怽把JVM嵌入到本地应用程序中。下图表达了JNI所扮演的角艌Ӏ?/P>

本文通过一个实例来阐述使用VC++6.0来实现JNI的完整过E。用JNI来整合本C码和Java代码的步骤是定的,没有再创作的余地Q所以读者可以通过本文的步骤来逐步认识刎ͼ其实Java也是"没有什么不可以"的?/P>

一、JNI的实?/H4>

d描述Q在Java中调用windows下的消息框函敎ͼq且从Java中传递一个字W串作ؓMessageBox函数的显C文本参敎ͼ昄在消息框的中间。下面让我们一赯入这一奇妙的旅E?/P>

Step 1Q写一个Javac,在这个类中包含了需要调用的本地Ҏ的描q?/P>
//WinMsgBox.java
package edu.netcom.jni;
public class WinMsgBox  
{
	static{
		System.loadLibrary("WinMsgDll");    // (1)
	}
	public native void showMsgBox(String str);  // (2)
}

(1)中WinMsgDll是动态链接文件的文g名,不用加扩展名Q因为在不同的^C动态链接文件扩展名是不同的Q由JVM自动识别Q比如在Solaris下,会被转换为WinMsgDll.soQ而Win32环境下会转换为WinMsgDll.dll。这个文件名必须和Step 4中生成的文g名一致。这个文件的存放位置也很重要Q它只能被放在JVM属性值java.library.path中指定的文g夹中。这个属性值可以用System.getProperty("java.library.path");来查看。一般情况下Q至放在这几个位置是确定可靠的Qwindows安装目录下的system32下面QJDK安装目录下的bin下面Q以及调用主cL件的当前目录?/P>

(2)中指明了你必ȝ本地代码实现的方法?/P>

Step 2Q提C符下用命令javac -d . WinMsgBox.java~译Step 1~写的java文g?/P>

此时会在当前目录下徏立一个edu\netcom\jni目录l构Qƈ且一个WinMsgBox.class文g存在其中?/P>

Step 3Q提C符下用命令javah -jni edu.netcom.jni.WinMsgBoxQ此时会在当前目录下产生一个edu_netcom_jni_WinMsgBox.h文gQ注意这个文件名是由Q包?cdQ组成,中间用(_Q隔开。此文g内容如下Q?/P>
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>                       // (1)
/* Header for class edu_netcom_jni_WinMsgBox */

#ifndef _Included_edu_netcom_jni_WinMsgBox
#define _Included_edu_netcom_jni_WinMsgBox
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     edu_netcom_jni_WinMsgBox
 * Method:    showMsgBox
 * Signature: (Ljava/lang/String;)V       // (2)
 */
JNIEXPORT void JNICALL Java_edu_netcom_jni_WinMsgBox_showMsgBox
  (JNIEnv *, jobject, jstring);           // (3)

#ifdef __cplusplus
}
#endif
#endif

(1)包含的jni.h存在于JDK安装目录下的include下面?/P>

(2)(Ljava/lang/String;)Vq是函数的标记符Q当从本地方法端讉KJava端的ҎӞ会用到这个标记符。JNI中ؓ每种数据cd也定义了标记W,标记W的规则h看JNI标准文档?/P>

(3)在WinMsgBox.java中本地方法void showMsgBox(String str);的定义,被映ؓJNIEXPORT void JNICALL Java_edu_netcom_jni_WinMsgBox_showMsgBox(JNIEnv *, jobject, jstring); 其中函数名的映射规则是(Java_包名_cd_Ҏ名)Q如果存在重载的ҎQ则在后面还会增加每个参数的标记W。每一个方法映到本地C函数后都会增加两个参敎ͼJNIEnv *和jobjectQ关于这两个参数的用法将在后面阐q。另外,所有Java中的数据cd都会按一定规则进行映ؓ本地数据cdQ这些数据类型都是在jni.h中定义的。下面分别按照基本数据类型,和对象类型列出?/P>

? Java基本cd到本地类型的映射

? Java中的cd本地cd的映?/P>

Step 4Q用VC来编写本地方法的实现函数Q最后编译成.dll文g。过E如下:

1) 选择new->projects(选择Win32 Dynamic-Link LibraryQ以Step 1中指定的库名WinMsgDll作ؓ工程?->OK->An ampty DLL project->Finish?/P>

2) 选择Tools->Options->Directories(d目录D:\J2SDK1.4.2_03\INCLUDE和D:\J2SDK1.4.2_03\INCLUDE\WIN32)。在q些目录中包含JNI所需的头文g?/P>

3) Step 3生成的edu_netcom_jni_WinMsgBox.h拯到WinMsgDll工程文g夹中。然后FileView中添加这个头文g?/P>

4) d源文件WinMsgDll.cppQ内容如下:

#include "windows.h"
#include "edu_netcom_jni_WinMsgBox.h"
/*
 * Class:     edu_netcom_jni_WinMsgBox
 * Method:    showMsgBox
 * Signature: (Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_edu_netcom_jni_WinMsgBox_showMsgBox
(JNIEnv * env, jobject obj, jstring str){
	const char *msg;
	msg = env->GetStringUTFChars(str,0);
	MessageBox(NULL,msg,"Java invoke",MB_OK);
	env->ReleaseStringUTFChars(str,msg);
}

5) ~译生成WinMsgBox.dll文g。ƈ这?dll文g拯到Step 1中说明的目录中?/P>

注意Q?/B>

1) 我们知道dll文g有两U指明导出函数的ҎQ一U是?def文g中定义,另一U是在定义函数时使用关键字__declspec(dllexport)。而在JNI中函数定义中的关键字JNIEXPORT实际在jni_md.h中如下定义,#define JNIEXPORT __declspec(dllexport)Q可见JNI默认的导出函C用第二种。用第二种方式产生的导出函数名会根据编译器发生变化Q在有的情况下会发生找不到导出函数的问题Q我们在JSP中用JNI时就发生了这U问题,百思不得其解,后来加入一?def文gp决了Q。因此最好是使用W一U方法自己定义一?def文g来指明导出函敎ͼq种情况下会强制使用W一U方式生导出函数。本例中可以加入一个WinMsgDll.def文gQ内容如下:

LIBRARY      "WinMsgDll"
DESCRIPTION  'message Windows Dynamic Link Library'
EXPORTS
    ; Explicit exports can go here
	Java_edu_netcom_jni_WinMsgBox_showMsgBox

2) 从本例中Q我们可以看到WinMsgBox.java军_了edu_netcom_jni_WinMsgBox.hQ而后者又军_了WinMsgDll.dllQ也是_q是一?牵一发而动全n"的过E,如果你改动了WinMsgBox.javaQ就一定要把整个步骤都C遍(q一点一定要切记Q因也是我们跌得鼻青脸肿后才得出的警世良aQ?/P>

3) 生成?dll文g一定要正确拯到Step 1说明的目录中Q本例中是将生成的WinMsgDll.dll和Step 5中的试文g攑֜同一个目录下的(q也是我们困惑了很久才解决的问题Q?/P>

Step 5Q编写一个测试文件来试对WinMsgDll.dll的调用。测试文件TestJNI.java内容如下Q?/P>
//TestJNI.java
import edu.netcom.jni.WinMsgBox;
public class TestJNI 
{
	public static void main(String[] args) 
	{
		     WinMsgBox box = new WinMsgBox();
		box.showMsgBox("Wonderful!!");
	}
}

~译Q运行,windows下的对话框跃然屏q中间。到此ؓ此,整个JNI的实现过E就已经完成了?/P>

二、补充说?/H4>

JNI为程序员提供了一U方法,使得他们能够充分利用JVM以外的,完全由^台决定的功能。但是你不应该滥用JNI。大多数情况可能是因栯必M用JNIQ如你已l有做好了的本地.dll文gQ其中已l包含了大量呕心沥血的函敎ͼ而你不愿意,也不可能完全用Java重写它们Q那么此时你应该用JNI。但是你必须按前面的步骤来进行,只是在Step 4中编写的.dll要调用已有的本地.dllQ也是说用Step 4中的.dll"装"已有?dll?/P>

在Java中定义的本地Ҏ映射到本地C函数后都会增加两个参敎ͼJNIEnv *和jobject。第一个参数JNIEnv是一个指针,指向在jni.h中定义的一个数据结构,l构中包含了一pd的函数的指针Q我们把它们UC为JNI函数。用这些JNI函数可以使程序员从本地函数这一侧完成对Java的操作,如访问Java字符丌Ӏ数l、调用Java的方法、成员变量、甚臛_理Java端的异常{。第二个参数会根据JavacM本地Ҏ的定义不同而不同,如果是定义ؓstaticҎQ类型会是jclassQ表C对特定Class对象的引用,如果是非staticҎQ类型是jobjectQ表C当前对象的引用Q本例中是对WinMsgBox对象的引用)Q相当于this?/P>

C函数通过JNI接受来自Java的传参也是按基本cd直接传|对象传引用。对于基本类型可以按照表1来用,其它cd都必M用JNI函数q行转换后才能在C函数中用。如本例中从Java中传递了一个字W串Q映ؓJNIcdjstring。用JNI函数GetStringUTFCharsjstring转换为UTF-8字符Ԍ然后便可以用C语言中的M字符串操作函数进行操作。由于JVM在调用本地方法时Q是在虚拟机中开辟了一块本地方法栈供本地方法用,当本地方法用完UTF-8串后Q必M用ReleaseStringUTFCharsQ通过它来通知虚拟机去回收UTF-8串占用的内存Q否则将会造成内存泄漏Q最l导致系l崩溃。同LQ如果需要将C函数q回的返回D够正通过JNI传给JavaQ也要用JNI函数转换为前面两个表中的cd?/P>

关于 JNI 函数的权威文档请参阅 Java Native Interface 1.5 Specification

关于 JNI 函数的教E请参阅 Java Native Interface Tutorial



AK747 2005-04-07 13:11 发表评论
]]>
游戏开发的|上资源! http://m.tkk7.com/zuroc/archive/2005/04/01/2728.htmlAK747AK747Fri, 01 Apr 2005 13:38:00 GMThttp://m.tkk7.com/zuroc/archive/2005/04/01/2728.htmlhttp://m.tkk7.com/zuroc/comments/2728.htmlhttp://m.tkk7.com/zuroc/archive/2005/04/01/2728.html#Feedback0http://m.tkk7.com/zuroc/comments/commentRss/2728.htmlhttp://m.tkk7.com/zuroc/services/trackbacks/2728.html
潋滟 潋滟现在ȝ
 
 http://bbs.gamedev.csdn.net/showthread.php?t=4241
注册日期: Oct 2003
帖子: 0 潋滟 is off the scale
游戏开发的|上资源!

我看各位扫书扫的实在是太辛苦?其实|上有h值的文档q是很多?如果各位仔细ȝ,到无不融会诏通时,必成其大?
|上的资料大多e文的,不过应该不成问题?学计机,E文是必要技?
|站:
http://nehe.gamedev.net/
有很多的OPENGL教程,看透了OPENGL基本修成正果.

http://www.gamasutra.com/
有很多最新的游戏~程技?紧跟时代潮流?

http://developer.nvidia.com/
DX和OPENGL的学习基?SOURCE CODE,DOCUMENT?

http://WW.ATI.COM
同上,

http://www.gamespy.net/
有一些资?我也没好好看,因该有一些有用的.

http://udn.epicgames.com/
UNREAL引擎的网站当然要讉K全部的网要注册的才?

http://www.magic-software.com
有很多的文档,以后谁再问什么BOUNDING BOX ,BOUNDING SPHERE,FRUSTUM的碰撞检?叫他们看|去,不过不大好连?有可以连的DOWN下来SHARE下吧.

http://directory.google.com/Top/Sci.../Software/?il=1
狗狗查出来的一大堆,好多宝贝?不要看花了眼睛啊.

http://sourceforge.net/
有很多半成品,要不要挑个抄?不过垃圾太多?

http://www.opengl.org/developers/do...tion/index.html
OPENGL 的官Ҏ?自己看吧.

http://lib-www.lanl.gov/numerical/bookcpdf.html
数学Ҏ的全?你以后看了老外的文章就知道Z么要看这个了!!VERY VERY USRFUL!是太多太难?

SIGGRAPH !
图象囑Ş的盛?|上L?查到了COURSE,PAPER ?DOWNLOAD 地址别忘了告?

http://www.cgshaders.org/
好多SHADER呀!不过没时间看.

http://www.gamedev.net/community/fo...asp?forum_id=12
一个好?好多好连?覆盖3d各方?

MAILLIST:
https://lists.sourceforge.net/lists...algorithms-list
最POP?D algorithm ,游戏开发MAIL LIST,有时你会看到偶像?抓紧Z快问,不要怕E文烂!脸皮厚不吃亏!

http://lists.midnightryder.com/list...dnightryder.com
也不?人气不错!

http://discuss.microsoft.com/archives/DIRECTXDEV.html
MS的DX MAILLIST

好了一下子把我搜集的网上资源A献出?希望班主|顶,大家l箋充实资料?
在这个信息爆炸的q代的确不用担心找不到资?怕就怕没有h认真的学?思?
q年头成不了伟大的游戏开发只能怪自?
现在游戏开发是老外的天?希望有更多的中国人去占领他门的BBS,MAIL LIST,{到在ALGORITHM LIST上看到的都是老张,李的时?中国的游戏开发也差不多该成熟了吧!


AK747 2005-04-01 21:38 发表评论
]]>
亚历山大大帝http://m.tkk7.com/zuroc/archive/2005/03/31/2668.htmlAK747AK747Thu, 31 Mar 2005 13:11:00 GMThttp://m.tkk7.com/zuroc/archive/2005/03/31/2668.htmlhttp://m.tkk7.com/zuroc/comments/2668.htmlhttp://m.tkk7.com/zuroc/archive/2005/03/31/2668.html#Feedback0http://m.tkk7.com/zuroc/comments/commentRss/2668.htmlhttp://m.tkk7.com/zuroc/services/trackbacks/2668.html《亚历山大大帝》[DVD]user posted image?长: 175 分钟

剧情介:  亚历山大大帝生于U元?56qؓ马其王Q菲利普Q之子,是历史上W一位征服欧亚大陆的著名帝王。亚历山大自qD颖过人,曑֏教于大师Q亚利斯多dQ,E长卌授予首府ȝ之职Qƈ以^定山贼有功而Q命ؓ马其大军统帅,随父横扫希腊城邦之ؕ?
  西元?36q菲利普遇刺Q亚历山大ȝ位ƈl承乃夫遗志Q率领希腊联军进LL斯,兛_卡卡一役大败L斯ƈ直入亚l亚d两河域QL斯帝国崩溃,波斯王大士被杀Q又q军埃及又越q印度河q入恒河域Q因军士思乡被迫退回。亚历山大融合东西文化,鼓励民族间通婚Qƈ倡导民族间地位^{,讲希腊思想律法散布各地Q开创希腊化时代文化Q死时却q仅33岁?BR>◆简评:史诗q就差一个完的句号?/STRONG>
“我q辈子最有意思的事情之一Q就是想办法拍出前得不可能的电影,或是大家认ؓ无法aȝ事情。”奥立佛·斯通说Q“我认ؓ《亚历山大大帝》是我到目前为止最大的挑战。千癑ֹ来竟然没有多h亚历山大的一生搬上舞収ͼ或拍摄他的传记片。有是他实在太伟大,一生有太多故事Q难以实现。我认ؓ1956q的那部《亚历山大大帝?|伯特L导演,里查·波顿L)q不Q它只遵循希腊故事的情节Q在亚历山大征服波斯帝国之后p入了֣Q亚历山大余生最后几q却略而不谈,其实他一生中最有趣或最重要的事情都发生在这D|间。对他,或对当时的世界,那几q有许多重大改变。拍《亚历山大大帝》是我的梦想。?
黑衣? Men in Black II
   KQ汤ch·琼斯Q和李ͼ威尔·史密斯)q次受到险恶外星人的挑战Q再一ơ联合v来保卫我们最好也是最后一道防御系l免遭破坏,保卫地球不受宇宙完的R袭。距M一ơ外星hL可以E祸银河pȝ隄星球已经?q时间了Q好不容易过上两天太qx子的K又要被杰拉出来l他们的“黑衣h”工作,一个非官方的政府机构控制着地球上的外星事务?

  在一ơ常规的犯罪调查中,杰发现萨琛_Q拉腊·弗莱恩·波亦)正在{划一起邪恶的阴谋。ؓ了方便行事,q个怪物伪装成一个性感的内衣模Ҏ؜在h中。在l过悉心准备后,萨琳娜的爪伸向了“黑衣h”大|把那里的Z扣押h当作。而现在杰只有一个h可以依靠了,那就是从前的老搭档,现在在美国邮政v享清、喜Ƣ老婆做的甜Dq一切的K。他们要再一ơ团lv来对付外星怪兽?/P>

  q次dҎ来说不仅是和旉赛跑Q更是要让对他们曄是“黑衣h”的l历毫无印象的K明白Q只有他们才能解救银河系于危?-在地球毁灭之前?



AK747 2005-03-31 21:11 发表评论
]]>
游戏开?/title><link>http://m.tkk7.com/zuroc/archive/2005/03/28/2535.html</link><dc:creator>AK747</dc:creator><author>AK747</author><pubDate>Mon, 28 Mar 2005 05:22:00 GMT</pubDate><guid>http://m.tkk7.com/zuroc/archive/2005/03/28/2535.html</guid><wfw:comment>http://m.tkk7.com/zuroc/comments/2535.html</wfw:comment><comments>http://m.tkk7.com/zuroc/archive/2005/03/28/2535.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/zuroc/comments/commentRss/2535.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zuroc/services/trackbacks/2535.html</trackback:ping><description><![CDATA[<A accessKey=1 >中国游戏开发?/A><BR></TD></TR></TBODY></TABLE><A target=_blank>www.gameres.com</A><BR><A target=_blank>www.chinagamedev.net</A><BR><A target=_blank>www.gametutorials.com</A><BR><A target=_blank>www.gamedev.net</A><img src ="http://m.tkk7.com/zuroc/aggbug/2535.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zuroc/" target="_blank">AK747</a> 2005-03-28 13:22 <a href="http://m.tkk7.com/zuroc/archive/2005/03/28/2535.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>_֓E序书籍下蝲http://m.tkk7.com/zuroc/archive/2005/03/26/2483.htmlAK747AK747Sat, 26 Mar 2005 09:55:00 GMThttp://m.tkk7.com/zuroc/archive/2005/03/26/2483.htmlhttp://m.tkk7.com/zuroc/comments/2483.htmlhttp://m.tkk7.com/zuroc/archive/2005/03/26/2483.html#Feedback1http://m.tkk7.com/zuroc/comments/commentRss/2483.htmlhttp://m.tkk7.com/zuroc/services/trackbacks/2483.html_֓E序书籍下蝲



AK747 2005-03-26 17:55 发表评论
]]>
Eclipse深度解析http://m.tkk7.com/zuroc/archive/2005/03/25/2447.htmlAK747AK747Fri, 25 Mar 2005 10:53:00 GMThttp://m.tkk7.com/zuroc/archive/2005/03/25/2447.htmlhttp://m.tkk7.com/zuroc/comments/2447.htmlhttp://m.tkk7.com/zuroc/archive/2005/03/25/2447.html#Feedback0http://m.tkk7.com/zuroc/comments/commentRss/2447.htmlhttp://m.tkk7.com/zuroc/services/trackbacks/2447.html
Eclipse的技术进?/DIV>
eclipse推出新的technology project proposals
偶尔又去eclipse.org看看了,发现了新的好目 The Graphical Modeling Framework (GMF) ; Language Development Toolkit (LDT) ; Model Driven Development Integration Project (MDDI)
MDA与RationalZEclipse3的新一代徏模工?/A>
MDA是对象管理组lOMG力图制定的实现MDD(Model-Driven Development)的标准,各大软g领导厂商也都U极参与MDA标准化的工作。现在IBM已经实现了MDD的基于Eclipseq_的品Rational Software ArchitectQƈ在其中集成了q程理、版本控制、代码复审等功能?
Eclipse目3.1开发目标和q度
Eclipse目毕竟有多q积淀下来的支持者和开发资源,在迈?.1的各个版本中Q对J2SE 5.0的支持得以逐步完善Q至今已l推?.1M5a版,其对J2SE 5.0在各个子pȝ的支持也都基本到位了?
Eclipse与NetBeans之争
Z么Eclipse的用者{向了Netbean? (是这L?)
  • Jarod: 我不知道eclipse是不是“越变越慢“(我刚开始用Eclipse已经?.0Q,但它的确很慢Q在我的C4 2.4G+512M的机器上感觉比JBuilder2005q要慢。^时看别h说Eclipse快,我也觉得奇怪,可能在说2.X版吧。不q我没用q?
  • 鄙视: 荒诞的说法? Eclipse快,而NetBean慢;SWT快,而Swing慢;如果是linux环境下,q个是事实?
Eclipse ?NetBean (争论的后l?
  • SEA: 我认为IDEA比Eclipse好用,不信你试??NETq好!
  • Evan: 如果你习惯于使用各类WizardQƈ且喜Ƣ在各个菜单、按钮和键盘之间来回切换的话Q那么IDEA实不如Eclipse。如果你学会了用IDEA的模板和文g模板Qƈ且希望可以用键盘来控制一切而无需写了几行代码p中途中断去操作鼠标Q那么先放下EclipseQ开始试试用IDEA|?
隐藏在SWT/Swing背后的故?/A>
Eclipsel验?/DIV>
Eclipse3.0下Struts QspringQ?hibernate快速入?/A>
本文是开发基于spring的web应用的入门文章,前端采用Struts MVC框架Q中间层采用springQ后台采用Hibernate。本文包含以下内容:配置Hibernate和事务;装蝲Spring的applicationContext.xml文gQ徏立业务层和DAO之间的依赖关p;Spring应用到Struts?
关于利用 eclipse+CDT q行嵌入式开发^台的调研
׃Eclipse IDEq_的开放性及其友好的交互界面, 可以很好的以插g的方式植根于Eclipse作ؓ软g开发^? 我们军_采用CDT(C/C++ Devekopment Toolkit), q以GCC, GDB为编译调试引? Project化的E序理开?
Eclipse 3.0 上配|JSP开发环?/A>
首先讲一下环境配|,注意我配|的环境是在win 2000 server下的Q不是linux下的Q配|的大致程和操作系l无养I仅仅是在具体的安装上有差别。而配|成功与否,与操作系l无兟?
Just for fun ?在Eclipse下编译和q行C#的代?/A>
仅仅是ؓ了好玩,我们来看一个Eclipse的C#插gQ该插g׃家法国公司Improve Technologies开发和l护Q目前支持Eclipse 3.0?NET Framework 1.1?
Eclipse Forms Programming Guide(English)
This document has been written to help you use the new Eclipse 3.0 feature called 'Eclipse Forms'. The content will eventually move to Eclipse help. In the mean time, you can start experimenting using examples shown below and code in Eclipse 3.0 integration builds.
使用RCP而不是Websphere Portal
q位仁兄的项目是一个进行预安排的软gQ而且看上d挺大的范围内使用(across the country)。但是这个项目没有用Portal或者其他什么B/S架构的系l,而是Eclipse的RCP?


AK747 2005-03-25 18:53 发表评论
]]>用Java多媒体框架设?自播攄?http://m.tkk7.com/zuroc/archive/2005/03/15/2110.htmlAK747AK747Tue, 15 Mar 2005 12:51:00 GMThttp://m.tkk7.com/zuroc/archive/2005/03/15/2110.htmlhttp://m.tkk7.com/zuroc/comments/2110.htmlhttp://m.tkk7.com/zuroc/archive/2005/03/15/2110.html#Feedback0http://m.tkk7.com/zuroc/comments/commentRss/2110.htmlhttp://m.tkk7.com/zuroc/services/trackbacks/2110.html
作者: 旉Q?2004q??2?16:47:17 来源Q?A target=_blank>yesky
    如果把Java媒体框架Qhttp://java.sun.com/jmfQ看作客L安装的媒体播放机的话Q那么这U框架ƈ不是非常Ȁ动h心。它只支持少量媒体类型,q且事实上这些媒体类型都被象Windows媒体播放Z及QuickTime{其它的应用E序支持?BR>
  但是从内容供应商的观Ҏ看,下面q个事实更加有意义:JMF在所有的Javacd中都可用Q这使在客户端上不必要有M特定的媒体技术就可以部v媒体--所需要的只是J2SE Javaq行旉?BR>
  更重要的是它能利?jar文g格式的一些性能把解码器和媒体组成到一个文件中Q创Z?自我播放电媄"Q用了象WinZip和StuffItq样的压~应用程序大致相同的方式来创我展开文档?BR>
  我们把此分ؓ三个阶段Q?BR>
  1QJMF能够播放.jar文g中的媒体?BR>
  2Q只使用需要播放本地媒体所需的JMF的一部分创徏一个轻量.jar文g?BR>
  3Q将代码和媒体放?jar文gQƈ且创Z个合适的manifest文档以它可以双凅R?BR>
  基本的JMF播放的关键是获得PlayerQ能解码和渲染你的媒体。一般来_q通过使用Manager获得合适的DataSource来完成,在一个播攑֮例中提供了媒体流和流元数据,例如媒体格式。Manager然后扑ֈ一个Player来处?DataSource。在两种情况下,Managerl合一个带有程序包前缀列表Q象javax.media、com.ibm.media{等Q的反射Ҏ来试囑֯扑֐适的c,例如如果一个计划的播放E序不能接受提供l它的DataSourceQ那么它׃抛出异常?BR>
  Manager没有太多事要做,只是察看一下URL中的协议和文件扩展名Q所以虽然它可以很容易的知道如何处理file:///Users/cadamson/mymp3stash/some.mp3Q但是它不知道如何处理象jar:file:/Users/cadamson/dev/jmftests/spmovie-old/src/gatsbymovie.jar!/movie/themovie.movq样的URL?BR>
  Z~和q种情况Q我们可以写一个DataSourceQ说得更准确一点就是一个PullDataSourceQ担负ؓManager描述l节的责仅RJarEntryDataSource中没有一个方法特别难Q我们提供的PullSourceStreamq需要实现几个超U接口?
它有些不够完,但是q个cM靠文件扩展名来返?内容cd"。这多多少有点象一个MIMEcdQ除了用句号代替斜U符h格式化以外,所以它可被用于E序包名Uͼ例如video/mpeg MIMEcd变成video.mpegQ所以Manager可以扑ֈcom.sun.media.codec.video.mpeg包)。下面是我们的简单的实现Q?BR>

public String getContentType() {
 try {
  URL url = getLocator().getURL();
  String urlFile = url.getFile();
  if (urlFile.endsWith(".mov"))
   return "video.quicktime";
  else if (urlFile.endsWith(".mpg"))
   return "video.mpeg";
  else if (urlFile.endsWith(".avi"))
   // Manager needs '_' insted of '-'
   return "video.x_msvideo";
  else
   return "unknown";
 } catch (MalformedURLException murle) {
   return "unknown";
 }
}


  另一个烦恼是JMF源代码表明如果提供的是Seekable的话Q这是一个提供随机存取seek()Ҏ的接口)Q默认Player只能播放一个QuickTime DataSource。如果寻扄在流的非怸的地方Q那么JarEntryDataSource中的{略是用InputStream.skip()。如果寻扄在当前读取点之后Q调用tellPointQ因为它的值通过Seekable.tell ()Ҏq回Q,然后它必d闭InputStreamQ再重新打开Q蟩到寻扄。它使用一个内部的thoroughSkip()Ҏ来确定我们实际上停在哪里?BR>
public long seek (long position) {
 try {
  if (position > tellPoint) {
   thoroughSkip (position - tellPoint);
  } else {
   close();
   open();
   thoroughSkip (position);
  }
  return tellPoint;
 } catch (IOException ioe) {
  return 0; // bogus...
 }
}

  使用q个c,Manager可以扑ֈ一个可用的Player用于播放.jar文g中的.mov或?avi文g。我们的CZ的TinyPlayer使用ClassLoader.getResource ()Ҏ来在c\径中Lmovie/themovie.mov或者movie/themovie.avi。当c\径只包含.jar文g的时候,我们对其进行设|?BR>
    准备一个合适的.jar文g中的W一步是使用JMF的jmfcustomizer工具来创Z个jarQ只使用播放我们的媒体所需要类Q去掉用于流、捕捉、译码和其它对于一个简化的播放E序不需要的函数。不q的是,Sun在各UJava版本的JMF中都不包含jmfcustomizer的帮助文Ӟ但是各种定制屏幕很容易设计出来:

  1Q媒体源和媒体汇点:选择"媒体文g"?播放"?BR>
  2Q协议:只是"文g"?BR>
  3Q源媒体格式Q?QuickTime (.mov)"?Avi"?BR>
  4Q解码器Q无Z计划在你的媒体中使用什么解码器Q但是用于音频的大部分都?A - law"?U - law"?IMA4"Q用于视频的?H263"。不要ؓ~码器、封包器和解包器而费心?BR>
  5Q渲染:在音频中Q我们需?JavaSound"用于Java 1.3?.3以上的版本,SunAudio用于Sun的pre-1.3 JVM。对于视频,我们只需要AWT?BR>
  其结果是本来用于我们的播攑֙的jar被从1.9 MB压羃?00K?BR>
  假定你已l编译了两个com.mac.invalidname.spmoviec,把它们添加到定制的jar中:

jar uf customized.jar com/mac/invalidname/spmovie/*.class

  JMF的许可证有效期需要它的readme文g使用MJMF或者定制子集来分布。我已经在misc目录中提供了Q在TinyPlayer的菜单项可以扑ֈ它:

jar uf customized.jar misc/

  Z使这?jar文g可双击,我们提供一个manifest文g告诉Javaq行旉?jar文g中的哪个cM有在双击或者用简单jar命o行变量的时候调用的main()Ҏ。manifestq提供一个只包含jar自己的类路径Q?BR>
Main-Class: com.mac.invalidname.spmovie.TinyPlayer
Class-Path: .

  q个manifest使用下面的命令来dQ?BR>
jar ufm customized.jar manifest-stub.txt

  q个文g现在有用于播放jar中的一个电q所有的代码。ؓ了将来之用,h它保存ؓspmovie-engine.jar文gQ或者类似的文g?BR>
  现在引擎已经具备了,我们所需要的只有媒体了。正如你可从JMF支持cd面<http://java.sun.com/products/java-media/jmf/2.1.1/formats.html>看到的那P所有Java版本的JMF有一个相当有限的所支持解码器的集合。对于视频来说最好的选择可能是H.263Q在很广泛的比特率下能够工作的很好,然而它可能在老机器上会执行得很困难,除非你压~视频或者保持较低的帧速率。虽焉频较是事先准备好的Q但是我想IMA 4:1执行得相当好。适当地编码或者译码你的媒体,q且把它复制为movie/themovie.mov或者movie/themovie.avi。如果你喜欢你也可以?jar文g改名Q我使用spmovie.jarQƈ且添加媒体:

jar u0f spmovie.jar media/

  注意q里?0"是数字零Q而不是字母OQ这表明我们不想压羃q个输入,因ؓ我们的媒体已l被压羃了?BR>
  千辛万苦Q我们的自我播放电媄l于做成了,q个文g知道在双ȝ时候运行什么类Q提供了多\解编、解码和渲染一部电影所需的所有的代码Q以及电影本w。如果你想看看这U小型自我播攄影,你可以去<http://homepage.mac.com/invalidname/spmovie/spmovie-small.jar>看看?BR>
  它扩展了应用程序的概念Q允许媒体在M可用于Java的浏览器中播放?BR>
  说白了,它是一个Java虚拟不是媒体播放机。但是我们这U?一ơ编辑,到处播放"的思想是完全符合Java的原先的目的的?BR>


AK747 2005-03-15 20:51 发表评论
]]>
ANT指南http://m.tkk7.com/zuroc/archive/2005/03/13/1984.htmlAK747AK747Sun, 13 Mar 2005 06:04:00 GMThttp://m.tkk7.com/zuroc/archive/2005/03/13/1984.htmlhttp://m.tkk7.com/zuroc/comments/1984.htmlhttp://m.tkk7.com/zuroc/archive/2005/03/13/1984.html#Feedback2http://m.tkk7.com/zuroc/comments/commentRss/1984.htmlhttp://m.tkk7.com/zuroc/services/trackbacks/1984.html 1998q_有一位程序员改变了整个Java世界。James Duncan Davidson在试图用当时的构徏工具QGNU Make、批处理文g和shell脚本Q来创徏一个跨q_的Tomcat构徏Ӟ做了多种努力均不能成功。因此,他在从欧z飞回美国的途中设计Z自己的构建实用工Pqؓ之命名ؓAntQ因是一个小东西Q但却能做大事。JamesZ解决自己的问题(卛_Z个跨q_的构建)而提出的q种快速而简单的解决Ҏ已经演变成Java环境中应用最为广泛的构徏理工具?BR>如果你在用Javaq行开发,而没有用AntQ那么确实应该拥有这本不厚的书。Ant是一个可靠的、跨q_的构建工P它可以充分利用Java环境的优ѝAnt本n也是用Java~写的,它可在多个^収ͼ如Unix、Linux以及Windows{等Q上工作Q因此如果你要{换开发^収ͼ那么学习 Ant是值得的。Ant很容易扩展。在你的工程中,目前是否存在某个需求,而所有Ant功能Ҏ都不能予以满_Q没有问题!你完全可以像James一P~写自己的Antd。没准儿你也能改变这个世界呢Q?BR>以下是用Ant可以完成的一些工作:
* 定义构徏块、它们必M生的l果以及它们之间的依赖关p?BR>* 自动地由诸如CVS{源代码控制pȝ获取源代?BR>* 不仅可oAnt以适当的顺序编译必要的源文Ӟ而且q可生成部v所必需的JAR文gQ由此完成应用的构徏
* 仅需׃个构建文Ӟ或一l构建文Ӟ卛_完成以上所有工作,而构建文件在Ant支持的所有^C都会有同L表现
要进行eXtremeQ极限)~程吗?Ant是一个必备工P利用它可以方便地完成频繁的构建,以此又将有利于用JUnit和相x术进行测试驱动的开发?BR>Ant构徏文g是用XML~写的,q是一U良构标准,因此可以保使用Antq不需要学习另一U脚本语a。Ant是一个开源工E,q是Apache软g基金会所投资的Jakarta工程的一部分?BR>“Jesse和Eric可以教你如何使用当前的AntQ他们做得相当棒。这本书提供了颇有深度的信息Q对于一些以往从未考虑到的工作Q书中还介绍了如何扩展Ant来完成这些工作的详细内容。不Z是偶用AntQ还是需要管理各U大型工E,q都是一本需要持之在手的工具书。?BR>—James Duncan DavidsonQAnt的创造?

AK747 2005-03-13 14:04 发表评论
]]>
Macromedia Flex 教程: Flex入门http://m.tkk7.com/zuroc/archive/2005/03/09/1882.htmlAK747AK747Wed, 09 Mar 2005 09:36:00 GMThttp://m.tkk7.com/zuroc/archive/2005/03/09/1882.htmlhttp://m.tkk7.com/zuroc/comments/1882.htmlhttp://m.tkk7.com/zuroc/archive/2005/03/09/1882.html#Feedback0http://m.tkk7.com/zuroc/comments/commentRss/1882.htmlhttp://m.tkk7.com/zuroc/services/trackbacks/1882.htmlMacromedia Flex 教程: Flex入门 Q?Q?/P>

创徏W一个Flex应用E序

作者:Robert Crooks (Macromedia培训组)
译QMoonFun.qhwa

轉載請註明來自藍色理?/P>

在本教程中,你可以阅dFlex的简单介l,q可以利用MXML创徏一个简单的分类购物车,从而学习到Macromedia Flex应用E序的基本构成。你会学到Q创Z个应用程序、添加一个布局的容器、添加控件、创Z控g兌的简单数据模型,以及利用ActionScript对事件进行处理?/P>

本文是Robert Crooks~写的四步Flex入门pd的第一部分QRobert Crooks现就职于Macromedia客户培训部门

Flex 入门 Q?Q:创徏一个Flex计算?BR>Flex 入门 Q?Q:使用容器
Flex 入门 Q?Q:使用数据模型

点击q里下蝲整个pd教程Q?Flex入门pd(144KB)

如果你需要更加详l的信息Q?A target=_blank>Macromedia客户培训组提供了ؓ期两天的在线培训评Q《利用Flex开发丰富的互联|应用程序》,教你快速学习Flex应用E序开发?让我们开始吧Q?/P>

如果你是一个XML新手Q请C下面的基本规?/P>

如同所有的XML语言一P在MXML中,标签和属性都是区分大写的;
所有的属性值必ȝ双引?")或单引号(包含

所有的标签必须是闭合的。没有子标签的标{֏以以斜杠直接l束Q而无需额外的结束标{:

<mx:Label text="Hello"></mx:Label>

?/SPAN>

<mx:Label text="Hello"/>

如果你是一?/SPAN>ActionScript新手Q你可以发现它的语法和你熟悉的语a的语法很相近Q比?/SPAN>JavaScript或?/SPAN>Java。请Cq些基本的规则:

ActionScript是区分大写?BR>语句必须以分?/SPAN>(;)l尾

本教E包含的内容Q?/STRONG>

1. Flex单介l?BR>2. 如何使用Application (应用E序)标签
3. 如何使用Panel (面板)容器
4. 如何使用Label (标签)控g
5. 如何使用Text (文本)控g
6. 如何使用Button (按钮)控g
7. 如何使用ComboBox (下拉列表)控g
8. 如何创徏一个数l对?BR>9. 如何l定数据到控件对?BR>10. 如何?/SPAN>ActionScript处理用户事g

准备条gQ?/SPAN>

完成本教E必d备的软g和文Ӟ

Macriomedia Flex

Q可以在Flex支持的^台和服务器上安装q行Q试用版?/SPAN>Flex只有光盘供应Q请?/SPAN>Macromedia销售处购买Q售?/SPAN>$8.99. 试用版的相关信息Q请讉K: Flex常见问题

试用 购买

Dreamweaver MX 2004 或其他文本编辑器Q例如记事本Q,用来~辑XML?/SPAN>ActionScript代码

试用 购买

准备知识Q?/STRONG>

阅读Flex?BR>会浏览一?/SPAN>Flex应用E序

Flex ?/STRONG>

Macromedia Flex 是一个用来创Z富信息的互联|应用程序的服务器组件。Flex内置的界面可以由Macromeida Flash播放器显C在客户端系l上。Flex的本质是Q?/P>

  • 一个描q应用程序界面的XML语言 (MXML)
  • 一个ECMA规范的脚本语a(ActionScript)Q处理用户和pȝ的事Ӟ构徏复杂的数据模?
  • 一个类?
  • q行时的x服务
  • 一个由MXML文g生成SWF文g的编译器

MXML

MXML是一U描qFlex應用E序構造的XML1.0语言。每个MXML文g应该以一个XML声明开始:<?xml version="1.0"?>

和其他XML语言一PMXML包含元素Q标{)和属性,对大写敏感。标{֐UC大写字母开_大小写؜合,必须有对应的l束标签Q?BR><ComboBox></ComboBox>

也可以这L束对没有内容的标{:
<ComboBox/>

属性以写字母开_大小写؜合。属性必d含在引号内?BR><ComboBox id="myCombo"/>

除了click或initialize之类的事件之外,所有的属性都被编译器作ؓ文本字符串处理。如果需要绑定数据或者强q编译器执行表达式,可以变量的部分用花括号包v来:
<ComboBox dataProvider="{myArray}"/>

大部分的属性都可以作ؓ子标{:
<ComboBox dataProvider="{myArray}"/>
{效于:
<ComboBox> <dataProvider>{myArray}</dataProvider> </ComboBox>

描述应用E序的MXML文g必须有一个位于其他元素之外的Application元素Q?BR><?xml version="1.0"?> 
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
  [other elements...] 
</mx:Application>

注意xmlns属性,它声明了XML的命名空间。命名空间可以让你在单个文档中用多重XML语言而避免؜淆不同语a中相同的元素名称。这里的":mx"是一个在特定命名I间中用的前缀?/P>

注意Q这里定义的命名I间是标准的MXMLcdQ请它包含在每个MXML文g中?/P>

可以声明放在Q何MXML标签中;声明对该标签嵌套的所有标{有效。本pd教程中都以mx作ؓMXMLcd的前~?/P>

如需更多信息Q?A class="" target=_blank>请参?Flex语言参?/A>

ActionScript

ActionScript是一U类似JavaScript和其他ECMA规范的面向对象的脚本语言。如果你使用qJavaScript或Java/C#{其他面向对象的语言Q你可以发现它们的语法很怼。你可以在MXML文g中嵌入ActionScript代码Q也可以从独立的外部文g导入代码?/P>

完整的ActionScript参考: Action 语言参?/A>


MXMLcd

Flex既包含控制和容器{可见的lgQ也包括了远E服务对象和数据模型{的不可见组件。你可以在后面的介绍中得到详l的信息?/P>

q行时服?/STRONG>

Flex提供了多运行时服务Q如Q历史控制和q程服务q接对象。以开发的角度看,q些服务都是对类库的调用?/P>

~译?/STRONG>

Flex~译器会在收C个浏览器讉KMXML文g的请求后Q自动编译生成相应的SWF文g。该SWF文g被~存Q直C修改了源MXML文g?BR>

创徏应用E序

在这个简单的购物车中Q我们显CZ个咖啡品牌的列表Q类gHTML的selectQ。用数据绑定功能在下面昄当前选择的品牌的说明Q还有一个添加到购物车的按钮Q当按钮被按下后Q该品牌的咖啡便会被d到购物列表中?/P>

?. 教程创徏的Flex应用E序

q个教程的目的是Z学习使用Q?/P>

Application (应用E序)c?BR>Panel (面板)容器
Script (脚本)元素
Array (数组)元素
Object (对象)元素
Label (标签)元素
Text (文本?元素
Button (按钮)控g
ComboBox (下拉列表)控g
List (列表)控g
一个ActionScript函数


创徏ApplicationQ应用程序)对象

M一个FlexE序都是以XML声明开始和Application标记的。Application标签包含一个MXcd命名I间的声明:xmlns:mx="http://www.macromedia.com/2003/mxml" 。引用该cd的所有标{ֿMmx作ؓ前缀?/P>

1. 创徏一个新文g Q然后保存ؓ firstapp.mxmlQ位于flex_tutorials目录?BR>2. 在文件的开始处Q插入XML声明Q?BR><?xml version="1.0"?>
3. 在XML声明后,d带命名空间的Application标签Q?BR><mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
</mx:Application>

应用E序布局Q添加一个面?/STRONG>

通常你可以将Flex应用E序中可见的lg攄于容器中Q容器提供了l定文本、控件、图像和其他媒体cd的元素。在q里Q你可以使用UCؓ“面李?Panel)的容器,它可以提供大部分应用E序需要的全部外壳。你q可以用面板的title(标题)属性,修改面板上方自动包含着的标题榄的文字?/P>

4. 在Application标签内部Q添加一个Panel标签Qtitle属性ؓ"my First Flex App"

<mx:Panel title="My First Flex App">
</mx:Panel>

d一个显C标题的Label元素

Label元素可以用来昄单行文本。它有一些属性,q里用到的是textQ文本)属性,定义Label昄的内宏V?/P>

5. 在Panel标签内,插入一个带有文本属性的Label标签Q如下:<mx:Label text="Coffee Blends"/>

6. 保存文gQ预览一下程?/P>

d一个定义咖啡品牌的数组对象

本程序的数据模型是一个简单的数组Q内Ҏ一pd的对象)Q你可以直接在程序中用Array和Object元素创徏。这里每个数l单元对象都有两个属性:label和dataQ你可以这两个属性写成对象的子标{。用q两个属性名U是Z提供lComboBox和Listq样的控件元素用,E后我们会介l?/P>

q些控g元素可以使用更加复杂的数据对象,但是既然现在是手工创建数据模型,我们׃用简单的形式。通常的语法是Q?/P>

<mx:Array id="identifier">
  <mx:Object>
      <label>literal string</label>
      <data>another literal string</data>
  </mx:Object>
</mx:Array>

留意q里的ID属性。ID几乎是所有Flex元素都具备的属性,它将元素“脓”上标志以区分其他元素。如果你要在数据l定或ActionScript中用这个元素,最好给它指定一个ID?/P>

不可见元素可以由你随意摆放,但是把他们放到程序的首部--卛_见元素的前面--是一个好习惯?/P>

<mx:Array id="coffeeArray">
 <mx:Object>
  <label>Red Sea</label>
  <data>Smooth and fragrant</data>
 </mx:Object>
 <mx:Object>
  <label>Andes</label>
  <data>Rich and pungent</data>
 </mx:Object>
 <mx:Object>
 <label>Blue Mountain</label>
 <data>Delicate and refined</data>
 </mx:Object>
</mx:Array>


d一个显C咖啡品牌的ComboBox

Flex的ComboBoxcM于HTML的select功能Q而且更加强大。需昄的数l由dataProvider属性指定。你可以在dataProvider标签中直接创建数l,但是更ؓ常用的方法是在别处创建或导入一个数l,然后在dataProvider处指定:

<mx:ComboBox id="myCombo" dataProvider="{myArray}"/>

q里的大括号告诉~译器:里面是一个变量或者代求算的变量,而不是字W串?/P>

如果对象包含label和data属性,他们会自动按昄数据QlabelQ和兌数据QdataQ区分,data可以是简单的|也可以是复杂的类型(如对象)。如果对象既没有label属性也没有data属性,那么整个对象作为data属性,而label属性则为由ComboBox的labelField属性指定的对象属性。例如ComboBox的labelFieldgؓ"name"Q那么label的值就为对象的name属性?/P>

8. 在Label之后d一个ComboBoxQid取ؓcoffeeCombQ用dataProvider属性将CombBoxl定C一步创建的coffeeArray数组Q?/P>

<mx:ComboBox id="coffeeCombo" dataProvider="{coffeeArray}"/>

d一个显C明的Text(文本)控g

Text控g与Label怼Q不同的是它可以昄多行数据。这里我们用它来昄ComboBox中选中的咖啡品牌的说明。这里要用到ComboBox中选择的项目的data属性?/P>

9. 在ComboBox之后Q添加一个带有text属性的文本控gQ将text属性设|ؓ“Description:”然后加上一个到ComboBox选择目的data属性的l定Q?/P>

<mx:Text text="Description: {coffeeCombo.selectedItem.data}"/>


d一个增加咖啡品牌到购物栏的按钮

Button控g很简单。它有一个label的属性来讄昄的文字,q有一个click事gQ用来指定鼠标点M件的处理动作?/P>

在这里,我们d一个按钮,通过调用一个addToCart函数Q把ComboBox中选择的项目添加到购物栏中。我们将在后面创个函数?/P>

10. d一个显C“Add to Cart”的按钮Q被点击后调用addToCart函数Q?/P>

<mx:Button label="Add to Cart" click="addToCart()"/>

l购物Rd一个ListQ列表)控g

List控g和ComboBox唯一的区别是它能同时昄和选择多条目。这里用的List不需要指定dataProvider属性了Q因为它在用h加数据前是空的?/P>

11. 在按钮之后,d一个List控gQid取ؓcart:

<mx:List id="cart"/>

d一D处理按钮点M件的脚本

教程的最后一步是d一DActionScript脚本Q用来处理按钮的点击事g。在q个单的应用E序中,我们在Script标签中添加脚本?/P>

Script标签中的ActionScript代码被包含?<![CDATA[  ]]> 里面Q这个标志里面的内容不被XML解析器解析。这个是标准的XML用法Q在q里是ؓ了保护ActionScript的一些可能会被XML解析器误处理的一些字W(?lt;{)Q实际上q样不仅保护了这些字W,也省MXML解析器解析ActionScript内容?/P>

q里用到的ActionScript语法很简单,函数的通常语法是:

function 函数?参数1:数据cd...):q回数据cd
{
 [ActionScript 语句]
}

在addToCart函数中,使用ListcȝaddItemҎd目。该Ҏ需要有label参数和data参数Q这些参数正好是ComboBox中选中的项目的label属性和data属性?/P>

12. 在Array标签之后Q插入一个带有CDATA包装的Script标签Q?/P>

<mx:Script>
  <![CDATA[]]>
</mx:Script>

13. 在CDATA里面Q添加一个名为addToCart不返回Q何值的函数Q?/P>

function addToCart():Void
{
}


14. 在函C内部Q用ListcȝaddItemҎComboBox中所选项目label属性和data属性添加到List上?/P>

cart.addItem(coffeeCombo.selectedItem.label,coffeeCombo.selectedItem.data);

15. 保存文gQ在览器中预览应用E序 Q查看浏览MXML文g的方法见W一)


 

firstapp.mxml完整的代码:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" >
 <!-- data model -->
 <mx:Array id="coffeeArray">
  <mx:Object>
   <label>Red Sea</label>
   <data>Smooth and fragrant</data>
  </mx:Object>
  <mx:Object>
   <label>Andes</label>
   <data>Rich and pungent</data>
  </mx:Object>
  <mx:Object>
   <label>Blue Mountain</label>
   <data>Delicate and refined</data>
  </mx:Object>
 </mx:Array>
 <mx:Script>
  <![CDATA[
   function addToCart():Void
   {
    cart.addItem(coffeeCombo.selectedItem.label,coffeeCombo.selectedItem.data);
   }
  ]]>
 </mx:Script>
 <!-- view -->
 <mx:Panel title="My First Flex App">
  <mx:Label text="Coffee Blends"/>
  <mx:ComboBox id="coffeeCombo" dataProvider="{coffeeArray}"/>
  <mx:Text text="Description: {coffeeCombo.selectedItem.data}"/>
  <mx:Button label="Add to Cart" click="addToCart()"/>
  <mx:List id="cart"/>
 </mx:Panel>
</mx:Application>


q一步学?/STRONG>

在这个简单的例子中,我们学习了Flex的一些核心元素:容器、控件、数据模型、数据绑定和事g处理。你可以l箋看本pd教程Q?/P>

Flex 入门 Q?Q:创徏一个Flex计算?/A>
Flex 入门 Q?Q:使用容器
Flex 入门 Q?Q:使用数据模型

你也可以下載整个教程Q?A class="" target=_blank>Flex入门(1-4)?BR>



AK747 2005-03-09 17:36 发表评论
]]>
վ֩ģ壺 ߹ۿվ| ðѾƷƵ | һۺ߲| Ļϵ| һAV| aaѹۿ| ޹Ʒһߵ | 91ֻƬ| þþƷAV뽿ɫ| ƷѸþ| ձ߹ۿַ| ëƬƵѹۿ| ɫaƬѿ| AVרAVJULIA| þ99Ʒѿ| ձѹۿ| 97޳ҹҹ| һ߹ۿ | Ʒþþþþۺ| ҹɫһ| avվ߿| ޹ᆱƷԲ߹ۿ| 鶹ƷƵ| ŷպavҰ| ˾Ʒֱ| Ʒҹѹۿվ| ۺۺ| ѹۿëƬվ| Ļavר| ޳aƬ߹| ƬѹۿĻ| ž99°| ޹++ۺ| ѹŮˬˮƵ| ȾþǾƷ6ѹۿ| ͼƬĻ| ޵һ߹ۿ| hƵ߹ۿ| 㽶Ʒþ| þþþ޾ƷӰ| Ů18һëƬѹۿ|