WIN10显卡驱动问题导致PS CC2015无法新建或打开文档

前几天,Adobe Photoshop CC 2015″无故”出现无法新建或打开文档问题。

经过一番查证,发现是因为Win10推送了nVidia的驱动更新导致的。

进入【计算机管理】的【设备管理器】,卸载当前显示适配器驱动,重启PS,问题解决。

随后去nVidia下载最新的显卡驱动,问题未重现。

【转】家庭网线插座接法图解 成为家装达人必知

导语:前面我们已经介绍过网线水晶头接法,初次动手的人或许觉得有些复杂。今天我们就来介绍网线插座的接法,你看了后会发现它比水晶头接法更简单。

很多人在房子装修的时候为了贪图便宜,请的是一些不正规的”野鸡”电工,所以家里的网线要么是乱接一通,要么就是接好没反应,后面还是得自己重新翻工。所以有志于自己动手接网线插座的朋友还是来学学吧。网线插座怎么接?

我们这里所说的网线插座,正确的叫法应该是网线模块,一般应用在室内的墙壁上作为网线插孔。现在家庭中使用的一般都是双绞线,双绞线分为T568A和T568B两种线序,信息模块端接入标准分T568A标准和T568B标准两种,我们的网线插座或者网线水晶头都只能在A和B中选择一种方式接线,若果一头接错就不会有反应。

A和B二者没有本质的区别,只是颜色上的区别。各自的接线方法是:
T568A的接法:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕
T568B的接法:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕

在正品网线插座上,8个接线卡口除了有标明568A标准和568B标准两种连接方式的色标外,还有标明每个内部接线端与前端针脚的对应序号,而且插座上的各种色标均非常清晰、极好辨认。在接线时,你只须将双绞线中的各色线对打入对应色标的卡口即可。

步骤1:将墙内网线(或者槽线),用专用的剥线钳或者压线钳的剥线刀在离线头10厘米长左右(也可以长一点,方便后面压线)的地方将网线表皮去掉(不要伤到金属线路)。

步骤2:分线,用打线钳逐根按进网线插座的金属卡槽内。

注意:

a.有的网线是四根白和橙绿蓝棕主色线缠绕,而不是白色和其他色系的混合的白线和主色线缠绕,所以要留心每一组两根线放好后,再拆其他的线,否则,四根白线你无法知道哪一根是白橙、白蓝、白绿、白棕。
 b.每次分离后,先不要压线,等所有的线路都放置好,同一使用打线钳,逐根打线。
 c.打线钳有内外之分,外侧较长,打下去之后会切掉外侧多余的线路,所以,如果不小心将外侧放在了网线插座的内侧则会裁断网线。

步骤3:把多余的线条剪掉后,将打好线的信息模块装到86盒面板上。好的网线插座后面还有护线卡,这样可以保护轻微的拖拽网线时,不至于脱落。但多数是没有护线卡保护网线插座的,所以在往墙内和插座面板上放置网线插座的时候要小心,不要拽拉网线。

网线插座接法看过之后是不是很简单呢?下次要接网线插座的话可以自己动手了吗?如果你还是觉得麻烦的话,那也一定得请正规家装公司。其实请家装公司和请不专业的电工的花费是差不多的,最重要的是可以省下不少麻烦。

【转】网线水晶头接法

来源:http://www.to8to.com/yezhu/z11033.html

导语:网线水晶头接法主要有两种,一种是平行线接法,另一种是交叉线接法。文章将会以图文的方式详细的教大家怎么进行网线水晶头的接法,可要看好了。

你以前有过自己制作、连接网线水晶头的经历吗?看到那么多的线头是不是有晕的感觉?想要组建一个局域网,牵网线进家是一个必不可少的过程,使用中网线水晶头时常会被损坏,那你是一次又一次地去请人来修还是自己动手轻松搞定呢?下面小编给大家介绍网线水晶头接法图解,保证大家看过后就能学会。  

一般来说,网线水晶头接法主要有两种,一种是平行线接法,另一种是交叉线接法。下面具体来讲解下这两种接法的详细步骤。

必备工具:压线钳,水晶头,网线,网线测试仪

 

一、平行线接法

1、用双绞线网线钳把五类双绞线的一端剪齐(最好先剪一段符合布线长度要求的 网线),然后把剪齐的一端插入到网线钳用于剥线的缺口中。注意网线不能弯, 直插进去,直到顶住网线钳后面的挡位,稍微握紧压线钳慢慢旋转一圈。

2、剥除外包皮即可见到双绞线的 4 对 8 条芯线,并且可以看到每对的颜色都不同。先把 4 对芯线一字并排排列,然后再把每对芯线分开,并按从左到右:白橙、橙、 白绿、蓝、白蓝、绿、白棕、棕的顺序排列(这种排列称为 568B 排序)。然后 用网线钳垂直于芯线排列方向剪齐。

3、左手水平握住水晶头,然后把剪齐、并列排列的 8 条芯线对准水晶头开口并排 插入水晶头中,注意一定要使各条芯线都插到水晶头的底部,不能弯曲。

4、确认所有芯线都插到水晶头底部后,即可将插入网线的水晶头直接放入网线 钳压线缺口中。水晶头放好后即可压下网线钳手柄,一定要使劲,使水晶头的插 针都能插入到网线芯线之中,与之接触良好。

 

二、交叉线接法

交叉线主要适用于 ADSL MODEM 和集线器 HUB 的连接,以及两台计算机直接通过 网卡相互连接。有些朋友想将家里的两台 PC 连接起来组成一个小局域网,还有 ADSL MODEM 和 HUB 的连接,都属于这一情况。

交叉线接法和直通线接法的基本步骤是一样的,不同的就是芯线的排列规则了,并且两个头的排列规则也不一样。主要有两种排序:568A标准和568B标准(绿橙换位)。即:
568A 标准:白绿,绿,白橙,蓝,白蓝,橙,白棕,棕
568B 标准:白橙,橙,白绿,蓝,白蓝,绿,白棕,棕

交叉线接法即一端是568A标准, 另一端是568B标准。做水晶头时,使水晶头的弹片朝外,入线口朝下,从左到右,遵循上面的线序,充分插入线(以在水晶头的顶部看到双绞线的铜心为标准),然后用压线钳夹紧就成功了。

测试是否接好:两端都做好水晶头后可以用网线测试仪进行测试,如果测试仪上 8 个指示灯都依 次为绿色闪过,证明网线制作成功。如果出现任何一个灯为红灯或黄灯,都证明存在断路或都接触不良现象。

是不是已经学会了呢?网线水晶头接法并不是什么非常复杂的事情,只要按照小编跟大家说的步骤来进行,即便你是菜鸟中的菜鸟,搞定这个也不是什么难事,下次要是家里的网线水晶头出问题,需要重新接线的相信大家就不用求人啦!

【VB.NET】带关闭按钮的选项卡

'来源:http://www.vbforums.com/showthread.php?622242-TabControl-with-Close-button-on-TabPages-(with-Design-Time-support)

Option Strict On
Imports System.ComponentModel



<ToolboxBitmap(GetType(System.Windows.Forms.TabControl))>
Public Class TabControlEx
    Inherits System.Windows.Forms.TabControl

    Private Declare Auto Function SetParent Lib "user32" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
    Protected CloseButtonCollection As New Dictionary(Of Button, TabPage)
    Private _ShowCloseButtonOnCurrentTab As Boolean = True
    Private _ShowCloseButtonOnTabs As Boolean = False


    <Browsable(True), DefaultValue(True), Category("Behavior"), Description("Indicates whether a close button should be shown on each TabPage")>
    Public Property ShowCloseButtonOnCurrentTab() As Boolean
        Get
            Return _ShowCloseButtonOnCurrentTab
        End Get
        Set(ByVal value As Boolean)
            _ShowCloseButtonOnCurrentTab = value
            For Each btn In CloseButtonCollection.Keys
                btn.Visible = _ShowCloseButtonOnCurrentTab
            Next
            RePositionCloseButtons()
        End Set
    End Property


    <Browsable(True), DefaultValue(True), Category("Behavior"), Description("Indicates whether a close button should be shown on each TabPage")>
    Public Property ShowCloseButtonOnTabs() As Boolean
        Get
            Return _ShowCloseButtonOnTabs
        End Get
        Set(ByVal value As Boolean)
            _ShowCloseButtonOnTabs = value

            RePositionCloseButtons()
        End Set
    End Property

    Protected Overrides Sub OnCreateControl()
        MyBase.OnCreateControl()


        For Each item In CloseButtonCollection
            item.Value.Text = item.Value.Text.Trim & Space(4)
        Next

        RePositionCloseButtons()
    End Sub

    Protected Overrides Sub OnControlAdded(ByVal e As System.Windows.Forms.ControlEventArgs)
        MyBase.OnControlAdded(e)
        Dim tp As TabPage = DirectCast(e.Control, TabPage)
        Dim rect As Rectangle = Me.GetTabRect(Me.TabPages.IndexOf(tp))
        Dim btn As Button = AddCloseButton(tp)
        btn.Size = New Size(rect.Height - 1, rect.Height - 1)
        btn.Location = New Point(rect.X + rect.Width - rect.Height - 1, rect.Y + 1)
        SetParent(btn.Handle, Me.Handle)
        AddHandler btn.Click, AddressOf OnCloseButtonClick
        CloseButtonCollection.Add(btn, tp)
    End Sub

    Protected Overrides Sub OnControlRemoved(ByVal e As System.Windows.Forms.ControlEventArgs)
        Dim btn As Button = CloseButtonOfTabPage(DirectCast(e.Control, TabPage))
        RemoveHandler btn.Click, AddressOf OnCloseButtonClick
        CloseButtonCollection.Remove(btn)
        SetParent(btn.Handle, Nothing)
        btn.Dispose()
        MyBase.OnControlRemoved(e)
    End Sub

    Protected Overrides Sub OnLayout(ByVal levent As System.Windows.Forms.LayoutEventArgs)
        MyBase.OnLayout(levent)
        RePositionCloseButtons()
    End Sub

    Public Event CloseButtonClick As CancelEventHandler
    Protected Overridable Sub OnCloseButtonClick(ByVal sender As Object, ByVal e As EventArgs)
        If Not DesignMode Then
            Dim btn As Button = DirectCast(sender, Button)
            Dim tp As TabPage = CloseButtonCollection(btn)
            Dim ee As New CancelEventArgs
            RaiseEvent CloseButtonClick(sender, ee)

            If Not ee.Cancel Then
                If MsgBox("是否关闭 " + tp.Text.Trim + "标签?") = MsgBoxResult.Ok Then
                    Me.TabPages.Remove(tp)
                    RePositionCloseButtons()
                End If
            End If
            End If
    End Sub

    Protected Overridable Function AddCloseButton(ByVal tp As TabPage) As Button
        Dim closeButton As New Button
        With closeButton
            '' TODO: Give a good visual appearance to the Close button, maybe by assigning images etc.
            ''       Here I have not used images to keep things simple.
            .Text = "X"
            .FlatStyle = FlatStyle.Flat
            .BackColor = Color.FromKnownColor(KnownColor.ButtonFace)
            .ForeColor = Color.White
            .Font = New Font("Microsoft Sans Serif", 6, FontStyle.Bold)
        End With
        Return closeButton
    End Function

    Public Sub RePositionCloseButtons()
        For Each item In CloseButtonCollection
            RePositionCloseButtons(item.Value)
        Next
    End Sub

    Public Sub RePositionCloseButtons(ByVal tp As TabPage)
        Dim btn As Button = CloseButtonOfTabPage(tp)
        If btn IsNot Nothing Then
            Dim tpIndex As Integer = Me.TabPages.IndexOf(tp)
            If tpIndex >= 0 Then
                Dim rect As Rectangle = Me.GetTabRect(tpIndex)
                If Me.SelectedTab Is tp Then
                    btn.BackColor = Color.Red
                    btn.Size = New Size(rect.Height - 1, rect.Height - 1)
                    btn.Location = New Point(rect.X + rect.Width - rect.Height, rect.Y + 1)
                    btn.Visible = ShowCloseButtonOnCurrentTab
                Else
                    btn.BackColor = Color.FromKnownColor(KnownColor.ButtonFace)
                    btn.Size = New Size(rect.Height - 3, rect.Height - 3)
                    btn.Location = New Point(rect.X + rect.Width - rect.Height - 1, rect.Y + 1)
                    btn.Visible = Me.ShowCloseButtonOnTabs
                End If

                btn.BringToFront()
            End If
        End If
    End Sub

    Protected Function CloseButtonOfTabPage(ByVal tp As TabPage) As Button
        Return (From item In CloseButtonCollection Where item.Value Is tp Select item.Key).FirstOrDefault
    End Function
End Class

 

【VB.NET】TabControl有关事件

事件: Deselecting               e.TabPage.Text=TabPage1
标签: SelectedTab               TabPage1
——————–
事件: Deselected               e.TabPage.Text=TabPage1
标签: SelectedTab               TabPage1
——————–
事件: Selecting               e.TabPage.Text=TabPage2
标签: SelectedTab               TabPage2
——————–
事件: Selected               e.TabPage.Text=TabPage2
标签: SelectedTab               TabPage2
——————–
事件: SelectedIndexChanged               TabPage2
标签: SelectedTab               TabPage2

【VB.NET】自定义TextBox类,添加显示下划线属性

实现功能:
a.ShowLine 参数:设置下划线是否可见
b.LineColor参数:设置下划线颜色
c.LineWidth参数:设置下划线粗细
d.LineOffset参数:设置下划线偏移量

Imports System.ComponentModel

<ToolboxBitmap(GetType(System.Windows.Forms.TextBox))>
Public Class TextBoxEx
    Inherits System.Windows.Forms.TextBox

    Protected _lineColor As Color = Color.Black
    Protected _lineWidth As Integer = 1
    Protected _lineOffset As Integer = 3
    Protected _showLine As Boolean = False
    Protected WithEvents Line As New Control()

    <DefaultValue(GetType(Color), "Black")>
    <Description("下划线颜色")>
    Public Property LineColor As Color
        Get
            Return _lineColor
        End Get
        Set(value As Color)
            If _lineColor <> value Then
                _lineColor = value
                RaiseEvent LineColorChanged(Me, Nothing)
            End If
        End Set
    End Property

    <DefaultValue(1)>
    <Description("下划线宽度")>
    Public Property LineWidth As Integer
        Get
            Return _lineWidth
        End Get
        Set(value As Integer)
            If _lineWidth <> value Then
                _lineWidth = value
                RaiseEvent LineWidthChanged(Me, Nothing)
            End If
        End Set
    End Property

    <DefaultValue(3)>
    <Description("下划线偏移量")>
    Public Property LineOffset As Integer
        Get
            Return _lineOffset
        End Get
        Set(value As Integer)
            If _lineOffset <> value Then
                _lineOffset = value
                RaiseEvent LineOffsetChanged(Me, Nothing)
            End If
        End Set
    End Property

    <DefaultValue(False)>
    <Description("指示控件是否显示下划线")>
    Public Property ShowLine As Boolean
        Get
            Return _showLine
        End Get
        Set(value As Boolean)
            _showLine = value
            RaiseEvent ShowLineChanged(Me, Nothing)
        End Set
    End Property

    ''' <summary>
    ''' 在 TextBoxEx.LineColor 属性值发生更改时发生
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Public Event LineColorChanged(ByVal sender As Object, e As EventArgs)

    ''' <summary>
    ''' 在 TextBoxEx.LineWidth 属性值发生更改时发生
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Public Event LineWidthChanged(ByVal sender As Object, e As EventArgs)

    ''' <summary>
    ''' 在 TextBoxEx.ShowLine 属性值发生更改时发生
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Public Event ShowLineChanged(ByVal sender As Object, e As EventArgs)
    ''' <summary>
    ''' 在 TextBoxEx.LineOffset 属性值发生更改时发生
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Public Event LineOffsetChanged(ByVal sender As Object, e As EventArgs)

    Public Sub onLineWidthChanged(ByVal sender As Object, e As EventArgs) Handles Me.LineWidthChanged, Me.LineOffsetChanged, Me.LineColorChanged
        If Me.ShowLine Then
            rePosLine()
        End If
    End Sub

    Public Sub onShowLineChanged() Handles Me.ShowLineChanged
        If Me.ShowLine Then
            BorderStyle = BorderStyle.None
            BackColor = Color.FromKnownColor(KnownColor.Control)
            rePosLine()
        Else
            BorderStyle = BorderStyle.Fixed3D
            BackColor = Color.FromKnownColor(KnownColor.Window)
            If Not IsNothing(Line) Then
                Line.Visible = False
            End If
        End If
    End Sub

    Protected Overrides Sub OnParentChanged(e As EventArgs)
        MyBase.OnParentChanged(e)
        If Me.ShowLine Then
            rePosLine()
        End If
    End Sub

    Protected Overrides Sub OnLocationChanged(e As EventArgs)
        MyBase.OnLocationChanged(e)
        If Me.ShowLine Then
            rePosLine()
        End If
    End Sub

    Protected Sub rePosLine()
        If Not IsNothing(Me.Parent) Then
            If Not Me.Parent.Controls.Contains(Line) Then
                Me.Parent.Controls.Add(Line)
            End If
            Line.Width = Me.Width
            Line.Height = Me.LineWidth
            Line.BackColor = Me.LineColor
            Line.Location = New Point(Me.Location.X, Me.Location.Y + Me.Height + Me.LineOffset)
            Line.Visible = True
            Line.BringToFront()
        End If
    End Sub

    Protected Overrides Sub Dispose(disposing As Boolean)
        MyBase.Dispose(disposing)
        If disposing Then
            If Not IsNothing(Line) Then
                Line.Dispose()
            End If
        End If
    End Sub

    Protected Overrides Sub OnLayout(levent As LayoutEventArgs)
        MyBase.OnLayout(levent)
        If Me.ShowLine Then
            rePosLine()
        End If
    End Sub
End Class

 

宽带修复记

昨天晚上可恶的老鼠在很隐蔽的地方把光仟线给咬断了。害我以为光猫出了问题,检查来检查去,还给复位了。致电电信后,下午时分他们才姗姗来迟。

(不知是不是技术不行,光仟线接了好几次),终于好了。师父说光衰-24dBm还不错。

但是!但是!但是!(重要的事情说三遍)

由于之前光猫复位了,需要重新进行设置注册,填写LOID和密码,所以还上不了网。电信员工掏出手机,进入后台系统,等待又等待,页面就是刷不出来。只好让他们先去维修其他地方,然后把ID和密码通过短信发给我。

过了一个多小时后,还不发来,只好打电话提醒下了。获得ID和密码后,在浏览器页面输入192.168.1.1,进入光猫,单击【设备注册】。

奇怪的是,提交后每当到获取管理IP时,总提示密码错误,打电话确认密码无误后,重试了几次还是不行(其实也可以在【网络】>【远程管理】>【OLT认证】里查看和设置)。本来想放弃的,后来想,干脆先看看进入光猫设置里看看好了。没想到设备早已注册成功,只是之前提示的信息有误而已。

 

后续部分,参考破解光猫WIFI篇。

 

补充。宽带 电话设置要注意这些

Flash Player 支持以下 HTML 标签

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

Flash Player 支持以下 HTML 标签:

标签 Description
锚标签 <a> 标签创建超文本链接并支持以下属性:

  • href:该 URL 可以是绝对路径或相对路径(相对于加载页的 SWF 文件的位置)。 http://www.adobe.com 示例表示对 URL 的绝对引用;/index.html 示例表示相对引用。 绝对 URL 必须以 http:// 为前缀,否则 Flash 会将其视为相对 URL。
  • event:使用 event 属性 (attribute) 来指定在用户单击超文本链接时调度的 link TextEvent 的 text 属性 (property)。 例如 event:myEvent;在用户单击此超文本链接时,文本字段会调度其 text 属性设置为 "myEvent"link TextEvent。
  • target:指定加载页面的目标窗口的名称。 选项包括 _self_blank_parent_top_self 选项指定当前窗口中的当前帧,_blank 指定一个新窗口,_parent 指定当前帧的父级,而 _top 指定当前窗口中的顶级帧。

可以使用 link 事件来使链接在 SWF 文件中执行 ActionScript 函数,而不是打开 URL。

还可以使用样式表为锚标签定义 a:linka:hovera:active 样式。

粗体标签 <b> 标签以粗体形式呈现文本。 粗体必须可用于所使用的字体。
换行标签 <br> 标签将在文本字段中创建一个换行符。 若要使用此标签,您必须将文本字段设置为多行文本字段。
字体标签 <font> 标签指定一种字体或一个字体列表来显示文本。字体标签支持以下属性:

  • color:只支持十六进制颜色 (#FFFFFF) 值。
  • face:指定要使用的字体的名称。 如下例所示,您可以指定一个以逗号分隔的字体名称的列表,在这种情况下,Flash Player 选择第一个可用字体。 如果用户计算机系统上没有安装指定字体,或指定字体未嵌入 SWF 文件中,则 Flash Player 将选择替代字体。
  • size:指定字体的大小。 您可以使用绝对像素大小(如 16 或 18),也可以使用相对磅值(如 +2 或 -4)。
图像标签 使用 <img> 标签可将外部图像文件(JPEG、GIF、PNG)、SWF 文件和影片剪辑嵌入到文本字段中。 在文本字段中,文本在嵌入的图像旁自动换行。 若要使用该标签,必须将文本字段设置为多行和文本换行。<img> 标签支持以下属性:

  • src:指定图像或 SWF 文件的 URL,或库中影片剪辑元件的链接标识符。 此属性是必需的,所有其它属性都是可选的。 外部文件(JPEG、GIF、PNG 和 SWF 文件)只有在完全下载之后才能显示。
  • width:所插入的图像、SWF 文件或影片剪辑的宽度(以像素为单位)。
  • height:所插入的图像、SWF 文件或影片剪辑的高度(以像素为单位)。
  • align:指定文本字段中嵌入图像的水平对齐方式。 有效值为 leftright。 默认值为 left
  • hspace:指定图像周围不显示任何文本的水平空间量。 默认值为 8。
  • vspace:指定图像周围不显示任何文本的垂直空间量。 默认值为 8。
  • id:指定包含嵌入的图像文件、SWF 文件或影片剪辑的影片剪辑实例(由 Flash Player 创建)的名称。 该属性可用于控制使用 ActionScript 嵌入的内容。
  • checkPolicyFile:指定 Flash Player 将检查服务器上与图像的域相关的跨域策略文件。 如果跨域策略文件存在,则此文件中列出的域中的 SWF 文件可以访问加载图像的数据,例如通过调用以此图像作为 source 参数的 BitmapData.draw() 方法。 有关详细信息,请参阅《ActionScript 3.0 编程》中的“Flash Player 安全性”一章。

Flash 以完全大小显示文本字段中嵌入的媒体。 若要指定嵌入的媒体的尺寸,请使用 <img> 标签的 heightwidth 属性。

通常情况下,文本字段中嵌入的图像显示在 <img> 标签后的行上。 但是,如果 <img> 标签是文本字段中的第一个字符,则该图像显示在文本字段的第一行上。

斜体标签 <i> 标签以斜体形式显示标签中的文本。 斜体必须可用于所使用的字体。
列表项标签 <li> 标签在所包含的文本前放置项目符号。 注意:因为 Flash Player 无法识别有序和无序列表标签(<ol><ul>),所以这些标签无法修改列表的呈现方式。 所有列表都是无序的,所有列表项都使用项目符号。
段落标签 <p> 标签创建一个新段落。 若要使用此标签,您必须将文本字段设置为多行文本字段。 <p> 标签支持以下属性:

  • align:指定段落内文本的对齐方式;有效值为 leftrightjustifycenter
  • class:指定 flash.text.StyleSheet 对象定义的 CSS 样式类。
Span 标签 <span> 标签只可用于 CSS 文本样式。 它支持以下属性:

  • class:指定 flash.text.StyleSheet 对象定义的 CSS 样式类。
文本格式标签 使用 <textformat> 标签可在文本字段中使用 TextFormat 类的段落格式设置属性的子集,其中包括行距、缩进、边距和 Tab 停靠位。 您可以将 <textformat> 标签与内置 HTML 标签结合使用。

<textformat> 标签具有以下属性:

  • blockindent:指定块缩进(以磅为单位);对应于 TextFormat.blockIndent
  • indent:指定从左边距到段落中第一个字符的缩进;对应于 TextFormat.indent。 正数和负数均可以接受。
  • leading:指定行与行之间的前导量(垂直间距);对应于 TextFormat.leading。 正数和负数均可以接受。
  • leftmargin:指定段落的左边距(以磅为单位);对应于 TextFormat.leftMargin
  • rightmargin:指定段落的右边距(以磅为单位);对应于 TextFormat.rightMargin
  • tabstops:将自定义 Tab 停靠位指定为一个非负整数的数组;对应于 TextFormat.tabStops
下划线标签 <u> 标签为标签文本添加下划线。

Flash Player 支持以下 HTML 实体:

实体 Description
&lt; < (小于)
&gt; > (大于)
&amp; &(和)
&quot; “(双引号)
&apos; ‘(撇号,单引号)

Flash 还支持显式字符代码,如 &#38;(ASCII 和号)和 &#x20AC;(Unicode € 符号)。

只有程序员才了解的真相

真相#1

  “你所不知道的是,很多我们每天都使用的关键软件(如Mac OS X和Facebook),作为一个整体虽然可以正常工作,但是实际上它们的背后充斥了各种的弊端和缺陷。这就像是你兴致勃勃地拆开了一架全新的747飞机,但是却发现燃料线是由衣架固定的,起落架是用胶带粘贴的。” ——Ben Cherry

这其实是非常有意思的一件事:网页和程序外观精美、运行流畅,但是却很有可能只是完美在前端上(用户所能看到的那一部分)。它们的背后其实千疮百孔、满是错误,不过因为某些神奇的原因,居然也可以正常工作。

真相#2

  “编写应用程序时,大概25%的时间是花在思考最终用户将会做哪些蠢事上的。”——Brian Humes

不过,25%这个数值会根据开发人员和程序员的作为而上下浮动。每次构建产品时,我们都需要坐下来思考最终用户将会如何把这个程序搞的一团乱。他们会点击什么,他们会写什么,问题的措辞,使用的语言,以及我们的写法所造成的不同理解。如果不注意这一点,那么就会出现很多问题,这是因为虽然我们知道程序是如何工作的,但是最终用户是不懂的。

真相#3

  “程序员不是修电脑的。” ——Ritesh Kumar Gupta

程序员是搞算法和设计原则的,不是一个修电脑的。我们知道电脑的内部工作原理,代码是如何协作的,但是,我们并不知道如何修理硬件,不知道为什么每次打开浏览器就崩溃,也不知道为什么电脑发热过度。请不要用一种“这种事对你们而言就是小菜一碟”的眼光看待我们。

真相#4

  “编程是一种思想,而不是敲代码。” ——Casey Patton

编程并不是说,只要你安安静静地坐下来,写个上千行代码,发布程序或应用程序的意思,编程其实是一种思想,一种解决问题的方法。而放松则是思考出方法的关键。

真相#5

  从零开始计算,而不是从一开始。

我们是从0开始计数的,所以你的“1”是我的“0”,你的“10”是我的“9”。之所以这么做,是因为这可以大规模地改善效率。

真相#6

  “一旦进入状态,编程就犹如神助——这种全神贯注的状态能让任何问题都变得小菜一碟。”——Morgan Johansson

知道为什么程序员被称为夜猫子吗?知道为什么我们常常熬夜吗?因为这样能让我们进入一种专注的状态,而不必担心会被其他人打断——因为他们都睡着了,这些烦人的家伙终于闭上了他们唧唧歪歪的嘴。真是一个伟大的编程时间啊!

真相#7

  告诉你个秘密,带着问题睡觉,实际上可以解决这个问题。

很多时候,我遇到那种花了几个小时都解决不了的问题,我就会去睡一觉。通过20分钟,一小时,六小时,十二小时的睡眠,醒来之后,问题答案就自然而然地出来了。

真相#8

  分配下来的任务却不再需要,就像父母杀掉孩子。

我们写的程序其实都类似于这样的层次结构。Parent管理它下面的Child。

现实中,如果父母不想要孩子,会去做流产。而在程序中,如果不再需要需要某些任务,那么会切断其与服务器的联系,杀掉这个孩子。

最后,真相#9

  当我们吹嘘我们有多么了解电脑时,你通常会不削一顾,同样的,你的自吹自擂也让我们觉得好烦。

老实说,这真的很烦,我们真的一点也不关心你对于计算机的了解。如果你说“我对于计算机不是很懂”,或者“我对计算机编程不是很感兴趣”那还是可以理解的,但是自吹自擂,鲁班门前弄大斧就会让我们厌烦了。请规避这种行为吧。

Flash Actionscript 3.0 位图九宫格切片代码

来源:http://bbs.9ria.com/thread-235526-1-1.html

package cn.flashk.controls.support{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.geom.Matrix;
	import flash.geom.Point;
	import flash.geom.Rectangle;

	/**
	* <p>Scale9GridBitmap 用来创建位图的九宫格缩放。(因为flash本身的九宫格缩放并不支持位图,只支持矢量)</p>
	* 
	* 要使用位图的九宫格,请先传递原始的图像到sourceBitmapData属性,scale9GridBitmap.sourceBitmapData = bitmapData实例
	* 然后直接设置width和height属性。(此时scaleX和scaleY始终为1,set width和set height函数已经被重写)。
	* 虽然你仍然可以设置scale横向缩放和竖向缩放,不过不建议使用设置scaleX和scaleY属性缩放。要使用scaleX而又要开启九宫格,请使用 b.width = b.width 乘以 b.scaleX这样的语法。
	*/

	public class Scale9GridBitmap extends Bitmap {
		/**
		* 九宫格左边竖线与0坐标的距离
		*/
		public var leftLineSpace:uint = 8;
		/**
		* 九宫格右边竖线与图像最右像素的距离
		*/
		public var rightLineSpace:uint = 8;
		/**
		* 九宫格上面横线与0坐标的距离
		*/
		public var topLineSpace:uint = 6;
		/**
		* 九宫格下面横线与图像最下像素的距离
		*/
		public var bottomLineSpace:uint = 6;
		/**
		* 控制再拉伸九宫格位图时是否对中间的部分开启平滑处理,默认关闭,开启将获得更好的渐变效果,设置为 true 的情况下绘制位图要比在设置为 false 的情况下执行相同操作更为缓慢,请注意此参数与smoothing属性的区别,smoothing是指控制在整个位图缩放时是否进行平滑处理。
		* smoothing在这里只影响小数坐标时是否平滑处理,因为Scale9GridBitmap的在重设宽高时scaleX和scaleY始终为1(set width和set height函数已经被重写,但你仍然可以自己设置scaleX,此时smoothing会有效果)
		* 
		* <p>修改scaleSmoothing只会在下一次更改宽高时生效,并不会立即刷新图像,如果需要立即刷新,请调用update函数</p>
		* 
		* @see #update()
		*/
		public var scaleSmoothing:Boolean = false;

		protected var sourceBD:BitmapData;
		protected var _width:uint=0;
		protected var _height:uint=0;
		protected var bd:BitmapData;

		public function Scale9GridBitmap() {
		}

		/**
		* 设置Scale9GridBitmap的原始未缩放的源数据,可以与其他 Bitmap 共用一个 Bitmapdata。因为Scale9GridBitmap在重设宽高需要重新计算bitmapdata数据,需要以此属性的数据做参考,Scale9GridBitmap并不会修改此属性中的像素数据。只会修改自身bitmapdata属性的数据。
		*/
		public function set sourceBitmapData(value:BitmapData):void {
			sourceBD = value;
			this.bitmapData = sourceBD;
			if (_height==0) {
				_height = sourceBD.height;
			}
			if (_width == 0) {
				_width = sourceBD.width;
			}
		}

		public function useSourceSize():void {
			this.bitmapData = sourceBD;
			_height = sourceBD.height;
			_width = sourceBD.width;
		}

		/**
		* 更改Scale9GridBitmap的宽度,修改此值将重新计算Scale9GridBitmap的bitmapData数据,如果height值与源图像相同,只修改width将采用3分法加速
		* 
		* @see #scaleGrid3()
		* @see #update()
		*/
		override public function set width(value:Number):void {
			if (uint(value) == _width) {
				return;
			}
			_width = uint(value);
			if (sourceBD == null) {
				return;
			}
			if (_width == sourceBD.width && _height == sourceBD.height) {
				this.bitmapData = sourceBD;
				return;
			}
			if (_height == sourceBD.height) {
				scaleGrid3();
			} else {
				scaleGrid9();
			}
		}

		/**
		* 更改Scale9GridBitmap的高度,修改此值将重新计算Scale9GridBitmap的bitmapData数据,如果width值与源图像相同,只修改height将采用3分法加速
		* 
		* @see #scaleGrid3V()
		* @see #update()
		*/
		override public function set height(value:Number):void {
			if (uint(value) == _height) {
				return;
			}
			_height = uint(value);
			if (_width == sourceBD.width && _height == sourceBD.height) {
				this.bitmapData = sourceBD;
				return;
			}
			if (_width == sourceBD.width) {
				scaleGrid3V();
			} else {
				scaleGrid9();
			}
		}

		/**
		* 立即重新计算图像,如果sourceBitmapData的数据有更新,调用此方法立即刷新Scale9GridBitmap与sourceBitmapData同步,请注意Scale9GridBitmap的bitmapData始终与sourceBitmapData是两份不同的数据和对象
		*/
		public function update():void {
			if (sourceBD && _width == sourceBD.width && _height == sourceBD.height) {
				this.bitmapData = sourceBD;
				return;
			}
			if (sourceBD && _width == sourceBD.width) {
				scaleGrid3V();
			} else if (sourceBD && _height == sourceBD.height) {
				scaleGrid3();
			} else {
				scaleGrid9();
			}
		}

		/**
		* 横向3分格启用加速
		*/
		protected function scaleGrid3():void {
			if (bd != null) {
				bd.dispose();
			}
			bd = new BitmapData(_width,_height,true,0);
			bd.copyPixels( sourceBD,new Rectangle(0,0,leftLineSpace,_height),new Point(0,0) );
			var tmpBD:BitmapData;
			tmpBD = new BitmapData(sourceBD.width-leftLineSpace-rightLineSpace,sourceBD.height,true,0);
			tmpBD.copyPixels(sourceBD,new Rectangle(leftLineSpace,0,tmpBD.width,tmpBD.height),new Point(0,0) );
			var mat:Matrix = new Matrix();
			var sca:Number = (_width-leftLineSpace-rightLineSpace)/(sourceBD.width-leftLineSpace-rightLineSpace);
			mat.scale(sca,1);
			mat.tx = leftLineSpace;
			bd.draw(tmpBD,mat,null,null,new Rectangle(leftLineSpace,0,_width-leftLineSpace-rightLineSpace,_height),scaleSmoothing );
			bd.copyPixels( sourceBD,new Rectangle(sourceBD.width-rightLineSpace,0,rightLineSpace,_height),new Point(_width-rightLineSpace,0) );
			this.bitmapData = bd;
			tmpBD.dispose();
		}

		/**
		* 竖向3分格启用加速
		*/
		protected function scaleGrid3V():void {
			if (bd != null) {
				bd.dispose();
			}
			bd = new BitmapData(_width,_height,true,0);
			bd.copyPixels( sourceBD,new Rectangle(0,0,_width,_height),new Point(0,0) );
			var tmpBD:BitmapData;
			tmpBD = new BitmapData(sourceBD.width,sourceBD.height-topLineSpace-bottomLineSpace,true,0);
			tmpBD.copyPixels(sourceBD,new Rectangle(0,topLineSpace,tmpBD.width,tmpBD.height),new Point(0,0) );
			var mat:Matrix = new Matrix();
			var sca:Number = (_height-topLineSpace-bottomLineSpace)/(sourceBD.height-topLineSpace-bottomLineSpace);
			mat.scale(1,sca);
			mat.ty = topLineSpace;
			bd.draw(tmpBD,mat,null,null,new Rectangle(0,topLineSpace,_width,_height-topLineSpace-bottomLineSpace),scaleSmoothing );
			bd.copyPixels( sourceBD,new Rectangle(0,sourceBD.height-bottomLineSpace,_width,bottomLineSpace),new Point(0,_height-bottomLineSpace) );
			this.bitmapData = bd;
			tmpBD.dispose();
		}

		protected function scaleGrid9():void {
			if (bd != null) {
				bd.dispose();
			}
			var tmpBD:BitmapData;
			bd = new BitmapData(_width,_height,true,0);
			var scaX:Number=(_width-leftLineSpace-rightLineSpace)/(sourceBD.width-leftLineSpace-rightLineSpace);
			var scaY:Number = (_height-topLineSpace-bottomLineSpace)/(sourceBD.height-topLineSpace-bottomLineSpace);
			var mat:Matrix;
			tmpBD = new BitmapData(sourceBD.width-leftLineSpace-rightLineSpace,topLineSpace,true,0);
			tmpBD.copyPixels(sourceBD,new Rectangle(leftLineSpace,0,tmpBD.width,tmpBD.height),new Point(0,0) );
			mat= new Matrix();
			mat.scale(scaX,1);
			mat.tx = leftLineSpace;
			bd.draw(tmpBD,mat,null,null,new Rectangle(leftLineSpace,0,_width-leftLineSpace-rightLineSpace,topLineSpace),scaleSmoothing );
			if (bottomLineSpace == topLineSpace) {
				tmpBD.fillRect(new Rectangle(0,0,tmpBD.width,tmpBD.height),0);
			} else {
				tmpBD.dispose();
				tmpBD = new BitmapData(sourceBD.width-leftLineSpace-rightLineSpace,bottomLineSpace,true,0);
			}
			tmpBD.copyPixels(sourceBD,new Rectangle(leftLineSpace,sourceBD.height-bottomLineSpace,tmpBD.width,tmpBD.height),new Point(0,0) );
			mat.ty = _height-bottomLineSpace;
			bd.draw(tmpBD,mat,null,null,new Rectangle(leftLineSpace,_height-bottomLineSpace,_width-leftLineSpace-rightLineSpace,bottomLineSpace),scaleSmoothing );
			mat= new Matrix();
			mat.scale(1,scaY);
			tmpBD.dispose();
			tmpBD = new BitmapData(leftLineSpace,sourceBD.height-topLineSpace-bottomLineSpace,true,0);
			tmpBD.copyPixels(sourceBD,new Rectangle(0,topLineSpace,tmpBD.width,tmpBD.height),new Point(0,0) );
			mat.ty = topLineSpace;
			bd.draw(tmpBD,mat,null,null,new Rectangle(0,topLineSpace,leftLineSpace,_height-topLineSpace-bottomLineSpace),scaleSmoothing );
			if (rightLineSpace == leftLineSpace) {
				tmpBD.fillRect(new Rectangle(0,0,tmpBD.width,tmpBD.height),0);
			} else {
				tmpBD.dispose();
				tmpBD = new BitmapData(rightLineSpace,sourceBD.height-topLineSpace-bottomLineSpace,true,0);
			}
			tmpBD.copyPixels(sourceBD,new Rectangle(sourceBD.width-rightLineSpace,topLineSpace,tmpBD.width,tmpBD.height),new Point(0,0) );
			mat.tx = _width-rightLineSpace;
			bd.draw(tmpBD,mat,null,null,new Rectangle(_width-rightLineSpace,topLineSpace,rightLineSpace,_height-topLineSpace-bottomLineSpace),scaleSmoothing );
			mat = new Matrix();
			mat.scale(scaX,scaY);
			tmpBD.dispose();
			tmpBD = new BitmapData(sourceBD.width-leftLineSpace-rightLineSpace,sourceBD.height-topLineSpace-bottomLineSpace,true,0);
			tmpBD.copyPixels(sourceBD,new Rectangle(leftLineSpace,topLineSpace,tmpBD.width,tmpBD.height),new Point(0,0) );
			mat.tx = leftLineSpace;
			mat.ty = topLineSpace;
			bd.draw(tmpBD,mat,null,null,new Rectangle(leftLineSpace,topLineSpace,_width-leftLineSpace-rightLineSpace,_height-topLineSpace-bottomLineSpace),scaleSmoothing );
			tmpBD.dispose();
			bd.copyPixels(sourceBD,new Rectangle(0,0,leftLineSpace,topLineSpace),new Point(0,0) );
			bd.copyPixels(sourceBD,new Rectangle(0,sourceBD.height-bottomLineSpace,leftLineSpace,bottomLineSpace),new Point(0,_height-bottomLineSpace) );
			bd.copyPixels(sourceBD,new Rectangle(sourceBD.width-rightLineSpace,0,rightLineSpace,topLineSpace),new Point(_width-rightLineSpace,0) );
			bd.copyPixels(sourceBD,new Rectangle(sourceBD.width-rightLineSpace,sourceBD.height-bottomLineSpace,rightLineSpace,bottomLineSpace),new Point(_width-rightLineSpace,_height-bottomLineSpace) );
			this.bitmapData = bd;
		}

	}
}