`

Flex TimerInput 输入组件

    博客分类:
  • Flex
阅读更多
package com
{
	
	import flash.events.Event;
    import flash.events.FocusEvent;
    import flash.text.TextLineMetrics;
    
    import mx.containers.HBox;
    import mx.controls.NumericStepper;
    import mx.controls.Text;
    import mx.controls.TextInput;
    import mx.core.UITextField;
    import mx.core.mx_internal;
    import mx.events.FlexEvent;
    import mx.managers.IFocusManager;
    
    use namespace mx_internal;
    
    /**
     * Dispatched when the time changes, which could be either the hour, minute.
     */    
    [Event(name="change",type="flash.events.Event")]
    
    /**
     * Dispatched when the hour changes.
     */    
    [Event(name="hoursChange",type="flash.events.Event")]
    
    /**
     * Dispatched when the minutes change.
     */    
    [Event(name="minutesChange",type="flash.events.Event")]
    
    /**
     * Dispatched when the seconds change.
     */    
    [Event(name="secondsChange",type="flash.events.Event")]

    public class TimeInputEx extends NumericStepper
    {
    	
    	
    	/**
    	 * 时间转换字符串 
    	 */
        public static function formatNumberWithChar(value:Number,length:int=2,pref:String="0"):String
        {
            var str:String = new String(value);
            var len:int = str.length;
            
            if(len > length)
            {
            	return str.substr(0,length);
            }
            else
            {
                var n:int = length - len;
                for( var i:int = 0 ; i < n ; i++ ) 
                {
                    str = pref + str;
                }
                return str;
            }
        }
		
		/**
		 * Construction 
		 */
        public function TimeInputEx()
        {
            super();
            this.maxChars = 2;
            this.minimum = 0;
            this.maximum = 23;
            this.stepSize = 1;
            this.addEventListener(FlexEvent.VALUE_COMMIT,valueCommandHandler);
        }
        //--------------------------------------------------------------------------
        //
        //  Variables
        //
        //--------------------------------------------------------------------------
        
        /**
         *  @private
         */
        protected  var inputBox:HBox;
        
        /**
         *  @private
         */
        protected  var sText:Text;
        protected  var sText2:Text;
                
        /**
         *  @private
         */
        protected  var hoursInputField:TextInput;
        
        /**
         *  @private
         */
        protected  var minutesInputField:TextInput;
    
        /**
         *  @private
         */
        protected  var secondsInputField:TextInput;
    
        /**
         *  @private
         */
        protected var _hours:Number = 0;
        /**
         *  @private
         */
        protected var _minutes:Number = 0;
        /**
         *  @private
         */
        protected var _seconds:Number = 0;
        /**
         *  @private
         */
        protected var _time:Date;
        /**
         *  @private
         */
        protected var _text:String;
         /**
         *  @private
         */
        private var _enabled:Boolean=true;
        
        
        /**
         * @override creationChildren 
         */
        override protected function createChildren():void
        {
            super.createChildren();
            
            if(!inputBox)
            {
                inputBox = new HBox();
                inputBox.setStyle("paddingLeft",0);
                inputBox.setStyle("paddingRight",0);
                inputBox.setStyle("paddingTop",0);
                inputBox.setStyle("paddingBottom",0);
                inputBox.setStyle("horizontalGap",0);
                inputBox.setStyle("borderStyle","solid");
                inputBox.setStyle("verticalAlign","middle");
                addChild(inputBox);
            }
            
            var v:String = "00";
            var lineMetrics:TextLineMetrics = this.measureText(v);
            var textWidth:Number = lineMetrics.width + UITextField.TEXT_WIDTH_PADDING;
			var textHeight:Number = lineMetrics.height + UITextField.TEXT_HEIGHT_PADDING;
            
            
            if (!hoursInputField)
            {
                hoursInputField = new TextInput();                
                hoursInputField.focusEnabled = false;
                hoursInputField.styleName = this;
                // restrict to numbers - dashes - commas - decimals
                hoursInputField.restrict = "0-9";
                hoursInputField.maxChars = 2;
                hoursInputField.text = formatNumberWithChar(_hours,2,"0");
                hoursInputField.width = textWidth;
                hoursInputField.height = textHeight;
                //hoursInputField.parentDrawsFocus = true;
                hoursInputField.setStyle("textAlign","right");
                hoursInputField.setStyle("borderStyle","none");                
                hoursInputField.setStyle("paddingLeft",0);
                hoursInputField.setStyle("paddingRight",0);
                hoursInputField.setStyle("paddingTop",0);
                hoursInputField.setStyle("paddingBottom",0);
                hoursInputField.setStyle("horizontalGap",0);
                
                
                hoursInputField.addEventListener(FocusEvent.FOCUS_IN,inputField_focusInHandler);
                hoursInputField.addEventListener(FocusEvent.FOCUS_OUT, inputField_focusOutHandler);
                
                inputBox.addChild(hoursInputField);
            }
            inputField=hoursInputField;
            if(!sText){
                sText=new Text();
                sText.text=":";
                sText.setStyle("textAlign","center");
                sText.setStyle("paddingLeft",0);
                sText.setStyle("paddingRight",0);
                sText.setStyle("paddingTop",0);
                sText.setStyle("paddingBottom",0);
                sText.setStyle("horizontalGap",0);
                inputBox.addChild(sText);
            }
            if (!minutesInputField)
            {
                minutesInputField = new TextInput();            
                minutesInputField.focusEnabled = false;    
                minutesInputField.styleName = this;
//                minutesInputField.width=textWidth;
    
                // restrict to numbers - dashes - commas - decimals
                minutesInputField.restrict = "0-9";
    
                minutesInputField.maxChars = 2;
                minutesInputField.text = formatNumberWithChar(_minutes,2,"0");
                minutesInputField.width = textWidth;
                minutesInputField.height = textHeight;
                //minutesInputField.parentDrawsFocus = true;
                
                minutesInputField.setStyle("textAlign","left");
                minutesInputField.setStyle("borderStyle","none");        
                minutesInputField.setStyle("paddingLeft",0);
                minutesInputField.setStyle("paddingRight",0);
                minutesInputField.setStyle("paddingTop",0);
                minutesInputField.setStyle("paddingBottom",0);
                minutesInputField.setStyle("horizontalGap",0);
                minutesInputField.addEventListener(FocusEvent.FOCUS_IN,inputField_focusInHandler);
                minutesInputField.addEventListener(FocusEvent.FOCUS_OUT, inputField_focusOutHandler);
                
                inputBox.addChild(minutesInputField);
            }
            if(!sText2){
                sText2=new Text();
                sText2.text=":";
                sText2.setStyle("textAlign","center");
                sText2.setStyle("paddingLeft",0);
                sText2.setStyle("paddingRight",0);
                sText2.setStyle("paddingTop",0);
                sText2.setStyle("paddingBottom",0);
                sText2.setStyle("horizontalGap",0);
                inputBox.addChild(sText2);
            }
            if (!secondsInputField)
            {
                secondsInputField = new TextInput();            
                secondsInputField.focusEnabled = false;    
                secondsInputField.styleName = this;
//                secondsInputField.width=textWidth;
    
                // restrict to numbers - dashes - commas - decimals
                secondsInputField.restrict = "0-9";
    
                secondsInputField.maxChars = 2;
                secondsInputField.text = formatNumberWithChar(_seconds,2,"0");
                secondsInputField.width = textWidth;
                secondsInputField.height = textHeight;
                //secondsInputField.parentDrawsFocus = true;
                
                secondsInputField.setStyle("textAlign","left");
                secondsInputField.setStyle("borderStyle","none");        
                secondsInputField.setStyle("paddingLeft",0);
                secondsInputField.setStyle("paddingRight",0);
                secondsInputField.setStyle("paddingTop",0);
                secondsInputField.setStyle("paddingBottom",0);
                secondsInputField.setStyle("horizontalGap",0);
                secondsInputField.addEventListener(FocusEvent.FOCUS_IN,inputField_focusInHandler);
                secondsInputField.addEventListener(FocusEvent.FOCUS_OUT, inputField_focusOutHandler);
                
                inputBox.addChild(secondsInputField);
            }
        }
        
         /**
         *  @private
         *  Return the preferred sizes of the stepper.
         */
        override protected function measure():void
        {
            super.measure();
            var inputBoxHeight:Number = inputBox.getExplicitOrMeasuredHeight();
            var buttonHeight:Number = prevButton.getExplicitOrMeasuredHeight() +
                                      nextButton.getExplicitOrMeasuredHeight();
    
            var h:Number = Math.max(inputBoxHeight, buttonHeight);
            h = Math.max(DEFAULT_MEASURED_MIN_HEIGHT, h);
    
            var inputBoxWidth:Number = inputBox.getExplicitOrMeasuredWidth();
            var buttonWidth:Number = Math.max(prevButton.getExplicitOrMeasuredWidth(),
                                              nextButton.getExplicitOrMeasuredWidth());
    
            var w:Number = inputBoxWidth + buttonWidth;
            w = Math.max(DEFAULT_MEASURED_MIN_WIDTH, w);
    
            measuredMinWidth = DEFAULT_MEASURED_MIN_WIDTH;
            measuredMinHeight = DEFAULT_MEASURED_MIN_HEIGHT;
    
            measuredWidth = w;
            measuredHeight = h;
        }
        /**
         *  @private
         *  Place the buttons to the right of the text field.
         */
        override protected function updateDisplayList(unscaledWidth:Number,
                                                      unscaledHeight:Number):void
        {
            super.updateDisplayList(unscaledWidth, unscaledHeight);
            
            var w:Number = nextButton.getExplicitOrMeasuredWidth();
            var h:Number = Math.round(unscaledHeight / 2);
            var h2:Number = unscaledHeight - h;
    
            nextButton.x = unscaledWidth - w;
            nextButton.y = 0;
            nextButton.setActualSize(w, h2);
           
            prevButton.x = unscaledWidth - w;
            prevButton.y = unscaledHeight - h;
            prevButton.setActualSize(w, h);
            var inputBoxHeight:Number = inputBox.getExplicitOrMeasuredHeight();
            var inputBoxWidth:Number = inputBox.getExplicitOrMeasuredWidth();
            
			inputBox.setActualSize(unscaledWidth - w, unscaledHeight);
			
			trace(unscaledWidth - w + "    " + unscaledHeight);
//          inputBox.setActualSize(inputBoxWidth,inputBoxHeight);    
        }
       
         /**
         *  @private
         */
        private function inputField_focusInHandler(event:FocusEvent):void
        {
            if (this.listData) {
                this.Caption = this.listData.label;
            }
            inputField=event.currentTarget as TextInput;
            if(event.currentTarget as TextInput == hoursInputField){
                this.value=parseInt(inputField.text);
                this.minimum=0;
                this.maximum=23;
            }else{
                this.value=parseInt(inputField.text);
                this.minimum=0;
                this.maximum=59;
            }
            
            focusInHandler(event);
            
            // Send out a new FocusEvent because the TextInput eats the event
            // Make sure that it does not bubble.
            dispatchEvent(new FocusEvent(event.type, false, false,
                                         event.relatedObject,
                                         event.shiftKey, event.keyCode));
        }
    
        /**
         *  @private
         */
        private function inputField_focusOutHandler(event:FocusEvent):void
        {
            if (this.listData) {
                this.listData.label = this.Caption;
            }
            focusOutHandler(event);
            
            // Send out a new FocusEvent because the TextInput eats the event
            // Make sure that it does not bubble
            dispatchEvent(new FocusEvent(event.type, false, false,
                                         event.relatedObject,
                                         event.shiftKey,event.keyCode));
        }
        
        /**
         * @private
         * 
         * do for format number to string
         */
        private function valueCommandHandler(event:FlexEvent):void{
            //var v=this.value;
            inputField.text=formatNumberWithChar(value,2,"0");
            if(inputField==hoursInputField){
                this.hours=value;
            }
            else if(inputField==minutesInputField){
                this.minutes=value;
            }
            else if(inputField==secondsInputField){
                this.seconds=value;
            }
            this.Caption=formatNumberWithChar(this.hours,2,"0")
                +":"+formatNumberWithChar(this.minutes,2,"0")
                +":"+formatNumberWithChar(this.seconds,2,"0");
            
        }
        
         /**
         *  @private
         *  Remove the focus from the text field.
         */
        override protected function focusInHandler(event:FocusEvent):void
        {
            super.focusInHandler(event);
    
            var fm:IFocusManager = focusManager;
            if (fm)
                fm.defaultButtonEnabled = false;
        }
        [Bindable]
        /**
         * The hours (an integer from 0 to 23) of the day.  
         * 
         * @default 0
         */        
        public function get hours():Number
        {
            return _hours;
        }
        
        [Inspectable(defaultValue=0,category="Time",name="Hours")]
        public function set hours(val:Number):void
        {
            if (val >= 0 || val <= 24)
            {
                this._hours = val;
                if(inputField){
                    if(inputField==hoursInputField && val!=value)
                        value=val;
                    else{
                        hoursInputField.text=formatNumberWithChar(val,2,"0");
                    }
                }
            }        
            
            dispatchEvent(new Event("hoursChange"));
            dispatchEvent(new Event("change"));
        }
        
        [Bindable]
        /**
         * The minutes (an integer from 0 to 59) passed in the hours.
         * 
         * @default 30
         */        
        public function get minutes():Number
        {
            return _minutes;
        }
        
        [Inspectable(defaultValue=30,category="Time",name="Minutes")]
        public function set minutes(val:Number):void
        {
            if (val >= 0 || val <= 59)
            {
                this._minutes = val;
                if(inputField){
                    if(inputField==minutesInputField && val!=value)
                        value=val;
                    else{
                        minutesInputField.text=formatNumberWithChar(val,2,"0");
                    }
                }
            }
            
            dispatchEvent(new Event("minutesChange"));
            dispatchEvent(new Event("change"));
        }
        
        [Bindable]
        /**
         * The seconds (an integer from 0 to 59) passed in the hours.
         * 
         * @default 30
         */        
        public function get seconds():Number
        {
            return _seconds;
        }
        
        [Inspectable(defaultValue=30,category="Time",name="Seconds")]
        public function set seconds(val:Number):void
        {
            if (val >= 0 || val <= 59)
            {
                this._seconds = val;
                if(inputField){
                    if(inputField==secondsInputField && val!=value)
                        value=val;
                    else{
                        secondsInputField.text=formatNumberWithChar(val,2,"0");
                    }
                }
            }
            
            dispatchEvent(new Event("secondsChange"));
            dispatchEvent(new Event("change"));
        }
        
        public function get Time():Date{
            var d:Date=new Date();
            d.hours=_hours;
            d.minutes=_minutes;
            d.seconds=_seconds;
            return d;
        }
        public function set Time(time:Date):void{
            this._time=time;
            this.hours=time.hours;
            this.minutes=time.minutes;
            this.seconds=time.seconds;
        }
        
        [Bindable]
        public function get Caption():String{
            return _text;
        }
        [Inspectable(defaultValue="00:00:00",category="Caption",name="Caption")]
        public function set Caption(timestr:String):void{
            this._text=timestr;
            this.hours=Number(timestr.substring(0,2));
            this.minutes=Number(timestr.substring(3,5));
            this.seconds=Number(timestr.substring(6,8));
        }
        
         /**
         *  @private
         */
        override public function set enabled(value:Boolean):void
        {
            _enabled = value;
            if(hoursInputField){
                hoursInputField.enabled=value;
                   minutesInputField.enabled=value;      
                   secondsInputField.enabled=value;      
                   sText.enabled=value;
                   sText2.enabled=value;
                   nextButton.enabled=value;
                   prevButton.enabled=value;
            }
            
        }
        
    
        /**
         *  @private
         */
      
        override public function get enabled():Boolean
        {
            return _enabled;
        }
        
    }
}

<?xml version="1.0" encoding="utf-8"?>
<mx:Application creationComplete="init();" xmlns:mx="http://www.adobe.com/2006/mxml" fontSize="12" layout="horizontal" xmlns:ns1="*" xmlns:com="com.*">

<mx:Script>
    <![CDATA[

        private function init():void{
            ac.addItem({starttime:"00:00:00", endtime:"01:00:00", program:""});
            ac.addItem({starttime:"01:00:00", endtime:"02:00:00", program:""});
        }

    ]]>

</mx:Script>

 
    <mx:DateFormatter id="timeFormatter" formatString="J:NN:SS A" />
    
    <mx:ArrayCollection id="ac"/>
    <mx:Panel layout="absolute" paddingLeft="5" paddingRight="5" paddingTop="5" paddingBottom="5" title="TimeInput" width="100%" height="224">
        <com:TimeInputEx id="timerinput" hours="23" minutes="45" width="250" seconds="30" Caption="03:45:30" top="10"/>
        <mx:DataGrid textAlign="center" id="dg" dataProvider="{ac}" sortableColumns="false" fontSize="14" editable="true" alternatingItemColors="[#ffffff, #d1d1d1]" headerColors="[#ffffff, #d1d1d1]" alpha="0.6"  left="10" right="10" top="51" bottom="29">
            <mx:columns>
                     <mx:DataGridColumn headerText="start time" dataField="starttime"  textAlign="center"  editable="true" minWidth="125" itemEditor="com.TimeInputEx" editorDataField="Caption"/>
               <mx:DataGridColumn headerText="end time" dataField="endtime"  textAlign="center" editable="true" minWidth="125" itemEditor="com.TimeInputEx" editorDataField="Caption"/>
            </mx:columns>    
        </mx:DataGrid>
    </mx:Panel>
    
    <mx:Panel layout="vertical" paddingLeft="5" paddingRight="5" paddingTop="5" paddingBottom="5" title="time now">
        <mx:Text text="hours:{timerinput.hours}"/>
        <mx:Text text="minutes:{timerinput.minutes}"/>
        <mx:Text text="seconds:{timerinput.seconds}"/>
        <mx:Text text="caption:{timerinput.Caption}"/>
        <mx:Button label="setTime to 8:10:03" click="timerinput.Caption='08:10:03'" />
        <mx:Button label="switchEnable" click="if(timerinput.enabled) timerinput.enabled=false; else timerinput.enabled=true;"/>
    </mx:Panel>
</mx:Application>


什么都不说了,自己看代码吧,TimerInputEx中只是在原有基础之上增加了label和input
分享到:
评论

相关推荐

    timer-input:监视输入或textarea元素的值是否已更改,例如“ input”事件

    定时器输入监视输入或textarea元素的值是否已更改,例如input事件。用法 var keyword = document . getElementById ( 'keyword' ) ;var kwInput = new TimerInput ( keyword ) ;kwInput . on ( function ( e ) { ...

    node-v9.9.0-win-x86.zip

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v6.13.0-sunos-x64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    毕业设计Python基于LSTM的多步向前手术风险预测项目源代码+数据+论文

    毕业设计Python基于LSTM的多步向前手术风险预测项目源代码+数据+论文

    node-v9.2.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    258ssm-mysql-jsp 陆丰市医院分诊管理系统.zip(可运行源码+数据库文件+文档)

    医院分诊管理管理系统是典型的信息管理系统,其主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起一致性、完整性强和安全性好的数据库。而对于后者则要求应用程序具有功能完备,易使用等特点。经过分析如此情况,决定使用Java语言进行开发,利用其提供的各种面向对象的开发工具,数据库方面使用当前比较流行的mysql。 本系统主要包括以下功能:系统设置功能、患者管理模块、分诊管理功能、诊断管理功能。1) 系统设置模块 系统设置包括权限管理和用户信息。此模块主要功能包括: ·添加、修改、删除和查看用户信息; ·给用户分配权限; 2) 患者管理功能 此模块的主要功能包括: ·包括添加、修改、删除和查看患者信息; 3) 科室管理模块 此模块主要功能包括: ·包括添加、修改、删除和查看信息; 4) 分诊管理模块 本模块用于对分诊信息进行统计和查询,主要包括: ·分诊排队; ·分诊叫号; 关键字 面向对象;数据库;java;医院分诊管理系统;mysql。

    心电图机监控软件 vc++ 心电图机数据采集 曲线显示诊断病历源码.zip

    心电图机监控软件 vc++ ,心电图机数据采集 , 曲线显示, 诊断 , 病历

    node-v9.10.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    儿童编程启蒙之Scratch编程详解

    Scratch是一款专为儿童设计的图形化编程语言,通过直观易懂的界面和丰富的功能模块,帮助孩子们理解编程的基本概念,激发创新思维,培养解决问题的能力。本文将全面介绍Scratch的特点、应用及教育意义,为广大家长和教育工作者提供有益的参考。 Scratch作为一款专为儿童设计的图形化编程语言,以其直观易懂的界面和丰富的功能模块,为儿童编程启蒙教育提供了有力的支持。它不仅能够帮助孩子们掌握基本的编程技能,还能够培养他们的逻辑思维能力、创新精神和团队合作能力。因此,广大家长和教育工作者应该充分利用Scratch这一工具,为孩子们创造一个充满乐趣和挑战的编程学习环境,让他们在快乐中成长,为未来的学习和发展打下坚实的基础。

    node-v9.11.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    波士顿.py

    波士顿.py

    Fortran学习规划与基本案例.pdf

    这份文档是一份详细的Fortran语言学习规划及基本案例说明,对于希望学习和掌握Fortran编程语言的用户来说,是一份极为宝贵的参考资料。 首先,文档明确了学习Fortran的背景与目标,有助于学习者明确自己的学习方向和目的,从而更有针对性地进行学习。同时,文档还详细规划了学习内容和时间安排,从基础知识学习到项目实践与综合应用,每个阶段的学习任务都清晰明了,为学习者提供了一个系统的学习框架。 其次,文档还介绍了Fortran语言的基本用法和案例,包括变量声明与赋值、数组、程序结构与流程控制等方面的知识,并通过实例练习来帮助学习者加深对知识点的理解和应用。这些案例不仅具有代表性,而且具有很强的实用性,可以帮助学习者更好地掌握Fortran编程技能。 此外,文档还提供了学习方法与资源的建议,为学习者提供了多样化的学习途径和参考资料。无论是官方文档、教材与参考书目,还是在线学习平台和科研团队的经验分享,都为学习者提供了丰富的学习资源,有助于学习者更全面地了解Fortran语言的特点和应用。

    answer.sql

    answer.sql

    Sora AI Video Preview Case Sora AI 视频模版项目,React全栈快速部署.zip

    Sora AI Video Preview Case Sora AI 视频模版项目,React全栈快速部署.zip

    最新试用版发货100虚拟商品自动发货系统 源码免费下载.rar

    最新试用版发货100虚拟商品自动发货系统 源码免费下载.rar最新试用版发货100虚拟商品自动发货系统 源码免费下载.rar

    ### Linux:信息、使用技巧和优缺点

    linux

    node-v8.16.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v12.22.9-linux-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    源代码-access 管理 系统 API 文件.zip

    源代码-access 管理 系统 API 文件.zip

Global site tag (gtag.js) - Google Analytics