12.a>>1 等效于a/2
13.如果一个显示对象被scale,bitmapdata.draw的时候并不是使用它缩放后的内容。需要这么做:_local4.draw(_local3,_fadeOutMatrix);
14。mask最好addChild到容器里。因为如果不addChild,parent缩放的时候,只缩放了MC,而没有缩放mask

1.Category是类别的意思

//设置鼠标移出移入时设设置样式
var touch:Touch = e.getTouch(e.target as DisplayObject, TouchPhase.HOVER);
if (touch) {
Mouse.cursor = MouseCursor.HAND; //手掌型样式。
} else {
Mouse.cursor = MouseCursor.AUTO;
}

2.json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构

1、对象:对象在js中表示为“{}”扩起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。

2、数组:数组在js中是中括号“[]”扩起来的内容,数据结构为 [“java”,”javascript”,”vb”,…],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

3.服务器数据通信采用JSON的格式

4、Assets工程包括了所有游戏素材

5、DisplayUtil中copyPixelArea可以把纯色背景的图片剪裁成最小区域

6、LayerManager是管理游戏显示层的类。一共有三层,从低往高分别是:

_mapLevel:地图层

_appLevel:用来装UI界面的

_noticeLevel:系统通知层

它们都是Starling的sprite

7.animation.FrameSprite是一个基于Starling的动画类

8.org.ly.manager.GeneralResourceManager是一个用于资源加载的类

9.GeneralResourceManager.getResource(_url,onComHandler,””,ResourceLevel.LEVEL_2);可以加载未存在的资源

10.AssetsManager主要是提供一些方法取到已有资源

11.AttributeManager管理人物、怪物、物品的属性

12、animation.MoveSprite 提供一个方法让显示对象从一个位置移动到目标位置,移动完成后会自动把它从显示列表删除

13、取得舞台的宽度:StarlingManager.stageWidth

14、NoticeManager.showAlert:显示上移的文字提示(技能冷却中)

15、AnimationManager调用Starling.current.juggler.add(starling.display.MovieClip)播放动画,它被FrameSprite调用

16、org.ly.loader.BinaryLoader二进制类型加载器

17、flash.display.BitmapData.setPixels(rect:Rectangle, inputByteArray:ByteArray):void

将字节数组转换为像素数据的矩形区域。对于每个像素,将调用 ByteArray.readUnsignedInt() 方法并将返回值写入像素。如果字节数组在写入整个矩形之前结束,将返回函数。字节数组中的数据应该是 32 位 ARGB 像素值。在读取像素之前或之后,不会对字节数组执行搜索。

18、用户的flash player 未启用硬件加速:_stage3d.context3D.driverInfo.indexOf(“Software Hw_disabled=userDisabled”) != -1

19、由于 Starling 中的全部 DisplayObject 都具有 pivotX 及 pivotY 属性,我们可以非常便捷地在

运行时改变其注册点

20、Starling 中的 DisplayObject 的 rotation 属性是以弧度为单位的,而非原生

Flash 中的以角度为单位

将角度转换为弧度:sprite.rotation = deg2rad(Math.random()*360);

21、Starling中,即使将对象从显示列表中移除了,它的事件侦听器依然残留着。为了更加安全、彻底

地移除一个对象,我们需要给 removeChild 方法设置其第二个参数 dispose 为 true

removeChild(clicked, true);

22、flatten: 如果你想尽可能地提高存在大量嵌套的Sprite对象的话,调用此方法可以让你

达到满意效果,它和 cacheAsBitmap的效果一样

23、Starling中的Button类是DisplayObjectContainer类的子类,

一个 Button 对象将会在你点击它的时候派发一个特殊的事件:Event.TRIGGERED

24、Staring 只会创建一个原生 TextField 对象作为文字源,该文字源将为多个

starling.text.TextField 对 象 提 供 文 字 纹 理

25、Quad(width:Number, height:Number, color:uint = 0xffffff, premultipliedAlpha:Boolean = true)

根据指定的尺寸和颜色创建一个四边形。 最后一个参数决定是否在渲染的时候预乘透明度值,从而影响混合输出的颜色值,大多数情况下可以使用默认值。

26、要调用starling.start();后才会响应事件

27、触摸结束判断:if(touch.phase != TouchPhase.ENDED)return;

1.popups包下有三个类一个接口,对来实现弹出层

2.CalloutPopUpContentManager 比较简单,open方法里直接使用Callout.show(content, source)进行弹出

3.Callout控件功能类似于tip。它能弹出一个带箭头的指向指定displayobject的tip,并且你可以设置它的指向方向。好像会自动在舞台能显示的范围内调整位置.callout.show方法其实也是调用PopUpManager.addPopUp()来弹出提示的

4.PopUpManager在feathers.core包下。这个包里其实是具体控件的接口和管理类

5.PopUpManager.addPopUp方法不需设置弹出的显示对象的parent,因为它直接stage.addChild到顶层

6.VerticalCenteredPopUpContentManager用于居中弹出,它的open(content:DisplayObject, source:DisplayObject):void方法中的source没有被用到。就是说弹出的层的parent直接是stage

7.app.xml中的landscape是让应用横向

8.DropDownPopUpContentManager是在指定的displayobject的上方或下方弹出一个层。它会根据displayobject的Y坐标来决定是在上还是在下。和Callout类似。但它没没箭头

9.PickerList相当于一下拉选择控件。它包含了一个button和一个List,点击按钮,popup弹出list让你选择。至于用哪种popup方式,是由当前的主题设置的

10.9.PickerList的labelField用于设置button的文本值用的是dataProvider item的哪个键

11.9.PickerList.listProperties.@itemRendererProperties.labelField = “text”;用于设置list中item的文本值用的是dataProvider item的哪个键

12.自定义list的itemrender要新建 一个类,继承自DefaultListItemRenderer然后this._list.itemRendererType = TestItemRender;

13.需要在Main(Game)里new 一个主题进行初始化,这是必须的,主题里会设置list的DefaultListItemRenderer

14.FeathersControl.validate会触发重绘draw

  1. _btn.upSkin =new Image( upTexture );正常状态

    _btn.hoverSkin = new Image( downTexture );鼠标经过

    _btn.downSkin = new Image( upTexture );鼠标按下

1.starling textfield 水平、垂直对齐方式设置:

tf.vAlign = VAlign.TOP;

tf.hAlign = HAlign.LEFT;

2、feathers的textInput是一个starling对象,但是它里边的TextField是flash.text.TextField的。

所以就算你把它放到其它Starling显示对象的下面,文字还是不会在下面的

但这个TextField会随着textInput的移动而移动

3、feathers的Panel是一个可以设置标题、布局的,带滚动条的面板。

设置标题:panel.headerProperties.title = “Is it time to party?”;

设置布局:var layout:VerticalLayout = new VerticalLayout();

layout.gap = 20;

layout.padding = 20;

panel.layout = layout;

4.Panel—〉ScrollContainer—〉Scroller—〉FeathersControl—〉starling.display.Sprite

5.Panel不启用水平滚动条:panel.horizontalScrollPolicy = Panel.SCROLL_POLICY_OFF;

Panel.SCROLL_POLICY_AUTO和Panel.SCROLL_POLICY_ON:启用
6、panel.scrollBarDisplayMode = Panel.SCROLL_BAR_DISPLAY_MODE_FIXED;一直显示滚动条

panel.scrollBarDisplayMode = SCROLL_BAR_DISPLAY_MODE_FLOAT;拖动的时候才显示滚动条

panel.scrollBarDisplayMode = SCROLL_BAR_DISPLAY_MODE_NONE不显示滚动条,但仍可以拖动

7、想使用滚动条,用ScrollContainer就可以了,没有必要用Panel,Panel只是加了标题标尾的功能
8、panel滚动条是不可以拖动的,可能拖动里面的内容。滚动条滚动方向和手势方向相反。适合在手机上用
ScrollContainer则和网页上的普通滚动条一样
9.ScrollContainer的滚动条不会超出你设置的width

10、设置label的属性:

container.addChild(label);

label.textRendererProperties.textFormat = new TextFormat( “宋体”, 20, 0xff0000 );

label.text = “I am the feathers label!”
当Feathers的Label被添加到舞台上的时候会对Label进行默认的字体设置,啊哦——所以大家都明白是怎么回事了吧,把顺序换一下就可以起作用了

label.textRendererProperties.textFormat,.textFormat其实是label类里textRenderer实例的属性:

const factory:Function = this._textRendererFactory != null ? this._textRendererFactory : FeathersControl.defaultTextRendererFactory;

this.textRenderer = ITextRenderer(factory());

1.由于aeonDesktopTheme主题中有代码:

protected static function textRendererFactory():ITextRenderer

{

return new TextFieldTextRenderer();

}

所以调用label.textRendererProperties=……后最终会调用label.refreshTextRendererStyles

最终会设置textRenderer的属性(textRenderer即TextFieldTextRenderer),从而达到改变label文字属性的作用

2、thickness 厚度

measure 测量

3、feathers的label设置HTML格式字体:starling的textField不支持HTML格式

label.text=”I am the feathers label!“;

label.textRendererProperties.isHTML = true;

4、label.textRendererProperties.wordWrap = true;让文本自动换行

label.textRendererProperties.background = true;显示文本背景

label.textRendererProperties.border = true;显示边框

label.textRendererProperties.displayAsPassword = true;作为密码文本

5、ScrollText是一个自带滚动条的文本组件。它的textfield不是starling的,所以会一直在starling显示对象的下面。label的textfield默认是starling的

6、textinput适合单行输入,textarea自带滚动条适合多行输入

7、buttonGroup.buttonFactory可以设置ButtonGroup中生成的按钮,但类型只能是Button

buttonGroup.buttonInitializer = function(btn:Button,data:Object):void{

btn.width = 200;

};可以对每个按钮在初始化时进行一些操作

8、ButtonGroup使用buttonFactory后,就不能在dataProvider的数据中设置triggered点击事件响应函数了

9、PageIndicator是一个单纯的页数显示的控件

pageIndicator.pageCount = 3;

pageIndicator.selectedIndex = 2;//显示当前是第3页。从0开始

pageIndicator.normalSymbolFactory设置页码未被选中的显示对象

pageIndicator.selectedSymbolFactory设置页码已被选中的显示对象

10、pickerList就是一个 combobox:下拉选择菜单

11、PickerList是由一个有特殊皮肤的Button+List组成,List的弹出由DropDownPopUpContentManager弹出

12、更换一个按钮皮肤:

var btn:Button = new Button();

btn.nameList.add(NumericStepper.DEFAULT_CHILD_NAME_INCREMENT_BUTTON);

container.addChild(btn);

13、自定义一个按钮皮肤:

(1)_theme.setInitializerForClass( Button, myCustomButtonInitializer, “my-custom-button” ;

private function myCustomButtonInitializer( button:Button ):void

{

button.defaultSkin = new Image( upTexture );

button.downSkin = new Image( downTexture );

button.hoverSkin = new Image( hoverTexture );

button.defaultLabelProperties.textFormat = new TextFormat( “fontName”, 18, 0xffffff );

}

(2)var btn:Button = new Button();

btn.nameList.add(“my-custom-button”);

container.addChild(btn);

14、和starling的image一样,feathers的imageloader上存在一个 color 属性值得大家记住,该属性允许你为一个图片指定一个颜

色值。在 Image 对象中,每个像素的颜色值都是由其纹理的颜色值和你指定的 color 颜色值

混合的结果。

15、在函数内部写侦听函数时,要注意先定义函数数再侦听,否则为空

16、当你用一个imageLoader作为一个Button的皮肤时,只有此按钮的状态对应,才会去加载这个图片

17、starling.textures.RenderTexture API 允许开发者在 Starling 中实现无损绘画功能

mRenderTexture = new RenderTexture(stage.stageWidth, stage.stageHeight);

var canvas:Image = new Image(mRenderTexture);

addChild(canvas);

mRenderTexture.draw(DisplayObject);

18、当自定义按钮皮肤时,myCustomButtonInitializer函数里,btn.defaultSkin不能=imgageLoader。因为这样的话,会导致鼠标移上去不会切换到hover状态,只能用一个已存在的图片。

各种状态也是不能用未完成加载的imgageLoader

19、Callout 的使用:

Callout 是在一个目标显示对象的周围弹出一个自定义的显示对象,但它的弹出位置只是固定上下左右,不会随着鼠标动而动

btn.addEventListener(TouchEvent.TOUCH,function(e:Event):void{

var callout:Callout = Callout.show(tip,btn);

callout.disposeContent = false;// 不写这句,弹出一次第二次就不见了

});

1.ButtonGroup
var group:ButtonGroup = new ButtonGroup();
addChild(group);
group.gap = 50; //必须要放在addChild()方法后面才生效
group.lastGap = 100; //可不放在addChild()方法之後

2.Starling.juggler.add(dc);
add函数里有这行代码:
if (dispatcher)
dispatcher.addEventListener(Event.REMOVE_FROM_JUGGLER, onRemove);
所以只要dc dispatchEventWith(Event.REMOVE_FROM_JUGGLER);就可以将动画停止

3.AppModuleManager管理所有模块的加载
AppModule,加载和表示一个模块(一个SWF)

4.结Feathers 输入文本设置焦点:_ui.textUserName.setFocus();

5.FeathersControl的name属性有特别的地方
它用一个_nameList:TokenList 来保存组件的名字,所以一个组件可以有多个名
增加名字:feathersControl.nameList.add(“btn_name_2”);
但feathersControl.name = “XX”;会清空之前的nameList
nameList和组件的皮肤有很大关系

6.Sector是一个flash.displayobject.sprite的子类。它可以画任意百分比的圆用于技能冷却效果

7.var resultCls:Class = getDefinitionByName(“skill.result.Result_”+skillId) as Class;
动态取得一个类

8.技巧:取得一个元素也可以通过删除它来取得:
var index:int = uint((e.currentTarget as RadioButton).name.split(“_”).pop());

9.AIR文件拖放:

this.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER,onDragIn);//拖动的文件被拖到目标上的时候触发

this.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP,onDrop);//拖动的文件在拖到目标上,并且松开的时候触发

this.addEventListener(NativeDragEvent.NATIVE_DRAG_EXIT,onDragExit);//拖动的文件离开目标的时候触发

获取被拖进来的文件:

public function onDrop(e:NativeDragEvent):void
{
var dropfiles:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
if(dropfiles.length > 0)
{
var file:File = dropfiles[0] as File;
}
}

10.flash.filesystem.File.separator():String

[只读] 主机操作系统的路径组件分隔符。

在 Mac OS 和 Linux 中,这是正斜杠 (/) 字符。在 Windows 中,它是反斜杠 () 字符。
注意:当在字符串中使用反斜杠时,请记住键入该字符两次(例如“directory\file.ext”)

11.GeneralResourceManager也可以加载本地文件(AIR中),它都是以二进制的形式进行加载的

12.打包工具把XML、图片、JSON都写成一个二进制文件。并进行压缩:

flash.utils.ByteArray.compress(algorithm:String=”zlib”):void

压缩字节数组。将压缩整个字节数组。读取文件的时候,再解压

13.打包图片的规则是:

A、写入图片数据长度

B、写入图片数据

C、写入图片宽

D、写入图片高

14.BinaryLoader使用URLStream来加载文件

URLStream 类提供对下载 URL 的低级访问。数据一下载,便可随即为应用程序使用,这和使用 URLLoader 时需要等到整个文件下载完不同。并且 URLStream 类还允许在完成下载前关闭流。已下载文件的内容将作为原始二进制数据提供。

加载完成后使用public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void得到ByteArray

15.加载文件时GeneralResourceManager会

info = new GeneralResourceInfo();

info.url = url;//通过URL确定文件类型

加载完成后BinaryLoader会调用info.resource方法,判断资源类型进行对应的解析

如果资源是.fa.pa.ba的文件,就会生成BAAnimationInfo、PAAnimationInfo、FAAnimationInfo类来进行解析

11、Feathers PanelScreen一般不进行实例化,而是与ScreenNavigator配合一起使用

this._navigator = new ScreenNavigator();

this._navigator.addScreen(BUTTON, new ScreenNavigatorItem(ButtonScreen,

{

complete: MAIN_MENU,

showSettings: BUTTON_SETTINGS

}));

12、progressBar.direction = ProgressBar.DIRECTION_VERTICAL;

确定进度条填充的方向为竖直的,但是你得设置progressBar的宽高看起来像竖直的

13、feathers.core.ToggleGroup:控制选择中的两个或更多个iToggle的情况下,只有一个可被选择

14、Screen,ScreenNavigato,ScreenNavigatorItem这3个组合一起使用来实现手机页面的功能

15.Feathers ScrollBar和SimpleScrollBar的区别:

ScrollBar是一个普通的平常在网页上常见的滚动条

SimpleScrollBar是一个只有一个滑块,没有背景,没有上下按钮的滚动条,适合手机上用

Feathers Scroller

不会被作为一个独立的容器或组件。通常意味着另一个组件的超类需要支持滚动

比如ScrollText—>Scroller、ScrollContainer—>Scroller

17、直接btn.defaultSkin = new Image(Texture.fromBitmapData((new BtnClass1).bitmapData));

btn.defaultSelectedSkin = new Image(Texture.fromBitmapData((new BtnClass2).bitmapData));

给换钮换肤是不生效的。

实际上是因为Button在addChil的时候会把theme中的默认皮肤方法赋值给stateToSkinFunction,

所以要使我们设置生效的方法就是在addChild我们的button之后将stateToSkinFunction赋值为null

18、clearInitializerForClass可以清除setInitializerForClass引起的引用

19、会先执行tabBar.tabFactory函数,才执行主题中的tabInitializer,所以在tabBar.tabFactory所设置的皮肤都被覆盖无效了

CalloutPopUpContentManager其实是简单的调用封装了Callout,它的open方法不是静态方法。它可以在一个显示对象的四周弹出另一个显示对象

DropDownPopUpContentManager.open方法其实是调用PopUpManager.addPopUp(this.content, false, false);只能在一个显示对像的上方或下方弹出,并且它还侦听舞台的变化来调整在上还是在下

VerticalCenteredPopUpContentManager.open方法也是调用PopUpManager.addPopUp(this.content, true, false);来顶层居中弹出

2、feathers.core.DisplayListWatcher.setInitializerForClass(type:Class, initializer:Function, withName:String=null):void

这是主题类中要调用的方法。它的功能是为指定的类和该类指定的实例名(可选)绑定初始化函数initializer

比如,AeonDesktopTheme主题中为PickList指定了INIT函数

this.setInitializerForClass(PickerList, pickerListInitializer);

protected function pickerListInitializer(list:PickerList):void

{

list.popUpContentManager = new DropDownPopUpContentManager();

}

初始化函数为PickerList弹出下LIST的管理器为DropDownPopUpContentManager;

3、VerticalCenteredPopUpContentManager、DropDownPopUpContentManager、CalloutPopUpContentManager都继承自EventDispatcher实现了IPopUpContentManager接口

4、Callout弹出的显示对像会默认有背景。PopUpManager.addPopUp则没有

5、dropDownPopUpContentManager.open两次同一个tip会出错。可以先close再open;

6、PopUpManager与VerticalCenteredPopUpContentManager的区别:PopUpManager弹出的显示对像不会自动关闭,而VerticalCenteredPopUpContentManager会

7、Check—>Button—>FeathersControl—>starling.display.Sprite

Check就是一个Button,一个isToggle的Button。只是它的皮肤变了

8、GroupedList是一个可分组的LLIS类似日历界面“今日可做今日已做”模块

9、var list:Vector. = new Vector.();

list.push(backBtn);

可以简写为: list = new [backBtn];

10、Header是一个手机屏幕页导航。有一个居中的标题和可以放在左右两边的按钮集合

11、List需要的dataProvider是一个ListCollection。默认数据中的label为LIST中显示的文本,iconSource为显示的图标

如果要改需要写代码:

list.itemRendererFactory = function():IListItemRenderer

{

var renderer:DefaultListItemRenderer = new DefaultListItemRenderer();

renderer.labelField = “text”;

renderer.iconSourceField = “thumbnail”;

return renderer;

};

12、自定义ListItemRenderer:

a.要继承FeathersControl

b.实现IListItemRenderer接口

c.override protected function draw():void

{

setSizeInternal(100,20,false);

}

转载于:https://www.cnblogs.com/fancyzhen/p/3948180.html

Feathers基础知识相关推荐

  1. (整理)Ruby的基础知识

    xzyxuanyuan0我的:收件箱资源博客空间设置|帮助|退出 首页 业界 移动 云计算 研发 论坛 博客 下载 更多 千月星跡 アイをも求めて彷徨っている孤独なヒーロー 目录视图 摘要视图 订阅 ...

  2. 嵌入式Linux的OTA更新,基础知识和实现

    嵌入式Linux的OTA更新,基础知识和实现 OTA updates for Embedded Linux, Fundamentals and implementation 更新的需要 一旦嵌入式Li ...

  3. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  4. 嵌入式linux编程,嵌入式Linux学习笔记 - 嵌入式Linux基础知识和开发环境的构建_Linux编程_Linux公社-Linux系统门户网站...

    注:所有内容基于友善之臂Mini2440开发板 一.嵌入式Linux开发环境的构建 嵌入式开发一般分为三个步骤: 1.编译bootloader,烧到开发板 2.编译嵌入式Linux内核,烧到开发板 3 ...

  5. 《计算机网络应用基础》模拟试卷(六),《计算机与网络应用基础知识1》模拟试卷...

    <计算机与网络应用基础知识1>模拟试卷 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机与网络应用基础知识1& ...

  6. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  7. python常用变量名_python基础知识整理

    Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...

  8. 计算机基础知识掌握欠缺,《计算机基础知识》实验教学改革探讨.pdf

    <计算机基础知识>实验教学改革探讨.pdf Science& TechnologyVision 科 技 视 界 科技 探·索·争鸣 计<算机基础知识>实验教学改革探讨 ...

  9. python计算wav的语谱图_Python实现电脑录音(含音频基础知识讲解)

    前言 今天开始进入近期系列文章的第一篇,如何用 Python 来实现录音功能. 在开始"造轮子"之前,个人一直强调一个观点,如果有些东西已经有了,不妨直接去 github 上搜,用 ...

最新文章

  1. 威纶通宏开机后使用初始化宏指令_【操作系统】我们按下电脑开机键的背后发生了什么?...
  2. 分拆之后又有大动作,惠普的下一步怎么走?
  3. ts可展开注释_TS语法之装饰器(注解)
  4. Windows Azure 社区新闻综述(#70 版)
  5. 主流机器学习模型模板代码+经验分享[xgb, lgb, Keras, LR]
  6. java json写入内存_如何在客户端上减少JSON.stringify使用的内存量?
  7. php中节点值怎么获取,php – 节点更新:获取旧值
  8. python函数可以按照参数名称方式传递参数_python函数传入参数(默认参数、可变长度参数、关键字参数)...
  9. 力扣35.搜索插入位置
  10. 消息人士:苹果正与比亚迪宁德时代洽谈电动汽车电池供应事宜
  11. 15、Web安全测试之XSS
  12. Linux Linux内核参数调优
  13. 解决斑马打印机打中文的问题
  14. 不动产 - 权属性质代码
  15. mysql导出忽略指定前缀_mysql批量删除指定前缀或后缀表
  16. 分分钟免费搭建一个简单而美博客
  17. Clarke Wight saving algorithm求解tsp问题
  18. BI(商业智能)的未来?
  19. html状态中的302代码含义,网站状态码301与302的作用与区别
  20. Linux ManJaro 换源、安装应用

热门文章

  1. 【机器学习手写笔记】概率图模型概述
  2. Error while building/deploying project DockExample (kit: Qt 5.12.9 (msvc2017_64) 64bit) The kit Qt 5
  3. blockchain-explorer区块链浏览器中文版部署
  4. flutter百度地图定位, poi检索功能
  5. 【云和恩墨大讲堂】戴明明 - 基于 PCIE 闪存卡的 Oracle 数据库使用
  6. 基于深度学习的图像分类:使用卷积神经网络实现猫狗分类器
  7. 中国大学MOOC 浙江大学《程序设计入门——C语言》 第8周:指针与字符串 测验与作业
  8. 400G/800G以太网光模块电侧发送端均衡器抽头系数设置原理
  9. 【转】bmp文件格式详解
  10. 两间三层小型别墅图片_100平米两间三层楼房设计图,农村盖房舒服实用最重要...