`

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 ) { ...

    C#使用timer实现的简单闹钟程序

    当用户点击StartButton时,会触发一个事件处理程序,该处理程序将用户在timerInput中输入的时间转换为秒,并将其存储在变量`alarmTime`中。然后,启动`timerClock`,并设置其Elapsed事件处理程序,以便在时间到达时...

    DeepSeek与AI幻觉-清华大学团队制作

    DeepSeek与AI幻觉-清华大学团队制作 一、什么是AI幻觉 (定义与基础概念) 二、DeepSeek为什么会产生幻觉 (聚焦特定AI模型的幻觉成因分析) 三、AI幻觉评测 (评估AI幻觉的频率、类型与影响的方法) 四、如何减缓AI幻觉 (解决方案与技术优化方向) 五、AI幻觉的创造力价值 (探讨幻觉在创新场景中的潜在益处,如艺术生成、灵感激发等)

    协同过滤算法商品推荐系统(源码+数据库+论文+ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计

    协同过滤算法商品推荐系统(源码+数据库+论文+ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 前台用户可以实现注册登录、商品浏览,在线客服,加入购物车,加入收藏,下单购买,个人信息管理,收货信息管理,收藏管理,评论功能。 后台管理员可以进行用户管理、商品分类管理、商品信息管理、订单评价管理、系统管理、订单管理。 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。

    MES系统数字化工厂解决方案.pptx

    MES系统数字化工厂解决方案.pptx

    MUI调用照片以及裁剪和图库照片上传到服务器

    MUI调用照片以及裁剪和图库照片上传到服务器

    ChatGPT付费创作系统V3.1.3独立版 WEB端+H5端+小程序端 (新增DeepSeek高级通道+新的推理输出格式)

    GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序, 是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。这是一种基于人工智能技术的问答系统, 可以实现智能回答用户提出的问题。相比传统的问答系统,ChatGPT可以更加准确地理解用户的意图, 提供更加精准的答案。同时系统采用了最新的GPT3.5接口与GPT4模型,同时还支持型,文心一言,腾讯混元, 讯飞星火,通义千问,DeepSeeK,智普等等国内各种大模型,可以更好地适应不同的应用场景,支持站点无限多开, 可以说ChatGPT付费创作系统目前国内相对体验比较好的一款的ChatGPT及多接口软件系统。 新增接入DeepSeek-R1、DeepSeek-V3(Ollama自部署和第三方均支持)、高级通道增加DeepSeek、 支持AI接口输出的reasoning_content字段(新的推理输出格式)、更新模型库、修复导出Excel的bug等功能, 优化了云灵Midjourney接口,出图更快更稳定。小程序端变化不大该系统版本测试下来比较完美, 老版本升级时数据库结构同步下,同时把原来

    基于java的美食点餐管理平台设计的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了一款基于Java技术的美食点餐管理平台的设计与实现。该平台旨在优化传统餐饮行业的服务流程,通过智能化的点餐系统、高效的订单处理、智能库存管理和数据分析等功能,为用户提供便捷高效的点餐体验,并提升餐厅管理效率和服务质量。系统涵盖了前端设计、后端开发、数据库设计等方面,采用了成熟的Java技术和现代Web开发框架,如Spring Boot、Vue.js或React,确保系统的高效性和稳定性。此外,文档还包括详细的用户界面设计、模块实现以及系统部署指南,帮助开发者理解和搭建该平台。 适合人群:具备一定的Java编程基础和技术经验的研发人员、IT从业者以及有意开发类似系统的企业和个人。 使用场景及目标:①为餐厅提供一个集点餐、订单处理、库存管理于一体的高效平台;②优化传统餐饮服务流程,提升客户服务体验;③利用大数据分析辅助决策,助力餐饮企业精细化运营;④通过集成多种支付方式和其他外部系统,满足多样化的商业需求。 其他说明:本项目不仅提供了完整的技术方案和支持文档,还针对实际应用场景提出了多个扩展方向和技术优化思路,旨在引导用户不断迭代和完善该平台的功能和性能。

    相场模拟与激光制造技术:选择性激光烧结、激光融覆中的凝固与枝晶生长研究,相场模拟与激光制造技术:选择性激光烧结、激光融覆及凝固过程中的枝晶生长研究,相场模拟 选择性激光烧结 激光融覆 凝固 枝晶生长

    相场模拟与激光制造技术:选择性激光烧结、激光融覆中的凝固与枝晶生长研究,相场模拟与激光制造技术:选择性激光烧结、激光融覆及凝固过程中的枝晶生长研究,相场模拟 选择性激光烧结 激光融覆 凝固 枝晶生长 ,相场模拟; 选择性激光烧结; 激光融覆; 凝固; 枝晶生长,相场模拟与激光工艺:枝晶生长的凝固过程研究

    基于ssh框架开发的厂区管理系统,集成增删改查功能。.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    关于加强新能源汽车安全管理涉及的法规标准分析.pptx

    关于加强新能源汽车安全管理涉及的法规标准分析.pptx

    基于SSM的校园二手交易平台.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    机器学习课程设计——基于AdaBoost的银行用户逾期行为检测.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    UI+svg+规范设置打包

    UI+svg格式

    关于乘用车燃料消耗量评价方法及指标强制性国家标准的分析.pptx

    关于乘用车燃料消耗量评价方法及指标强制性国家标准的分析.pptx

    openjpeg-1.5.1-18.el7.x64-86.rpm.tar.gz

    1、文件内容:openjpeg-1.5.1-18.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/openjpeg-1.5.1-18.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊

    FPGA Verilog实现BT656与1120视频协议组帧解帧代码详解:含文档介绍与仿真验证,FPGA Verilog实现BT656与1120视频协议组帧解帧代码详解:含文档介绍与仿真验证,fpga

    FPGA Verilog实现BT656与1120视频协议组帧解帧代码详解:含文档介绍与仿真验证,FPGA Verilog实现BT656与1120视频协议组帧解帧代码详解:含文档介绍与仿真验证,fpga verilog实现视频协议bt656和1120组帧解帧代码 有文档介绍协议,有mod仿真,matlab代码仿真 ,FPGA; Verilog; BT656协议; 1120组帧解帧代码; 文档介绍; Mod仿真; Matlab代码仿真,FPGA Verilog:实现BT656与1120组帧解帧代码的仿真与文档化研究

    基于 RAG 与大模型技术的医疗问答系统(毕设&课设&实训&大作业&竞赛&项目)

    基于 RAG 与大模型技术的医疗问答系统,利用 DiseaseKG 数据集与 Neo4j 构 建知识图谱,结合 BERT 的命名实体识别和 34b 大模型的意图识别,通过精确的知识检索和问答生成, 提升系统在医疗咨询中的性能,解决大模型在医疗领域应用的可靠性问题。.zip项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于 vue+elementUI+springboot 设计的 模仿'猪八戒'的服务外包平台.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    抖音视频带货:行业趋势与营销策略.pptx

    抖音视频带货:行业趋势与营销策略.pptx

Global site tag (gtag.js) - Google Analytics