flash中的as脚本语言基本教程.doc_第1页
flash中的as脚本语言基本教程.doc_第2页
flash中的as脚本语言基本教程.doc_第3页
flash中的as脚本语言基本教程.doc_第4页
flash中的as脚本语言基本教程.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

flash中的as脚本语言基本教程 flash中的as脚本语言基本教程(1)/eschool/video/flashas/ 【21视频之Flash as脚本视频教程】/s/blog_4cc2bbc0010008r1.html 【flash中的as脚本语言基本教程(1)】写的这些教程,目的是希望初学flash的爱好者们能多动手,少提问。我下面这些教程面象有 flash(mx) 基础操作知识的读者。在看我的教程的同时,希望也能打开flash,边看边做,这样你的印象会更加深刻一点,顺便也看看我哪里写错了:)as基础做过flash动画的flash爱好者们都知道,要做好一个flash动画,as是必不可少的,即使只是很简单的几句代码也能起到整个flash画龙点睛的作用。这里我只简单的介绍一下as的基本常识。首先我们要了解as要写在什么地方,什么时候as会被触发执行。1、帧:写在关键帧上面的as,当时间轴上的指针走到这个关键帧的时候,就写在这个帧上面的as就被触发执行了。常见的例子有在影片结尾的帧写上 stop() 等。操作方法就是点选关键帧,然后打开as面板。2、按钮:不同于帧上面的as,按钮上面的as是要有触发条件的。要把as写在按钮上,僮鞣椒堑阊勘臧磁缓蟠蚩狝s面板。举个例子能说的更明白。假设有一个动画,要让它在播放完同时停止,那么,你要做的就是在这个动画的最后一帧写as:stop(); 再假设有个按钮,效果是按下按钮后停止播放,那么步骤如下。做一个按钮,放到主场景,点选按钮,然后打开as面板。现在如果也在按钮上写:stop(); 那么,输出的时候就会提示错误。正确的应该这样写:on(release)这里要比帧的动画多这些代码: on(release) , 整个代码翻译过来就是:当(松开)红色的代码表示鼠标的触发事件事件之一,这里用的是 release 松开,按钮的常用事件:release松开releaseoutside在按钮外面松开press按下rollover鼠标进入按钮的感应区rollout鼠标离开按钮的感应区现在很明确了:写在按钮上面的as一定就是这种格式的:on(事件) 3、mc(电影剪辑)如果你看懂了上面的内容,那么写在mc上面的as和写在按钮上的大同小异。操作方法就是点选mc,然后打开as面板。看个例子:onclipevent(load)同样,mc需要一个事件来触发as的执行。翻译这段代码就是:当剪辑(载入)红色代码同样表示一个事件。mc的事件有下面这些:load 载入,当mc出现的时候执行。也就是除非卸载这个mc,否则load事件内的代码只执行一次unload 卸载,当mc卸载的时候执行enterframe 存在的每个帧。在mc存在的每个帧都要执行一次代码。如果你的场景有100个帧,有个mc从41帧开始出现到100帧才消失,那么这个mc上面的代码执行了60次mousedown 按下鼠标,在场景内任何地方都算。和按钮不一样的地方mousemove 移动鼠标,只要移动鼠标就执行代码mouseup 松开鼠标同样你要明确:写在mc上的代码一定总是这种格式:onclipevent(事件)看到这里,如果你明白的写在帧、按钮、mc上的代码有什么不一样,任务就算完成了。六、影片属性第一讲:控制(设置)MC的属性控制MC的属性的确是很精彩和很有趣的事,flash的很多特殊效果,都是靠控制影片的属性来实现的。控制(设置)MC的属性,常用以下两种方法1、setProperty(mc的名称, mc的属性,属性的数值); 2、用点语句直接赋值; mc._width=50_xscale 影片剪辑水平(横向)缩放比例 ;默认值为100 _yscale 影片的纵向缩放比例;默认值为100 例如: mc._xscale=50 /设置影片水平方向是原来(100%)影片像数的一半。 mc._width=50/ 设置影片宽度为50像数 与_xscale类同,_yscale按软件帮助中说的来理解是:影片剪辑的垂直缩放比例。 不要和 _height(以像素为单位设置和获取影片剪辑的高度)混淆了! 哈哈哈,我是不是在这里补充了两个属性呀? 1、_width-以像素为单位设置和获取影片剪辑的宽度。 2、_height-以像素为单位设置和获取影片剪辑的高度。第二讲setProperty(target, property, value)和getProperty(instance, property)setProperty(target, property, value) /target:被控制的对象,也就是要控制影片的名称;property:影片的属性,就是刚刚讲的_alpha等;value:影片属性的值。 这个语句的作用就是把值value赋给影片的属性。 另外一个语句:getProperty(instance, property);/instance:影片的名字,property:影片的属性。 这个语句的作用是获取该影片属性的值。 先举个例子:a=getProperty(mc,_alpha) 如果mc的透明度为80,那么a=80; 控制属性的方法之二: 用点语句直接赋值和调用。 举个例子:mc._alpha=40; /让影片的透明度为40; b=mc._alpha /把影片的透明度值赋给变量b 第三讲、取得mc的属性的语句: getProperty(mc的名称,mc的属性) 这个语句通常用在比较复杂的动画中 ,动态地取得mc的属性,再加以控制。在上面例中如:(1)setProperty(mov,_alpha,getProperty(mov,_alpha)-5); ,这一句其实是一个复合的语句。它相当于 (2) a=getProperty(mov,_alpha)-5;/取得影片mov的透明度的值后,再减5,把差赋与a. (3) setProperty(mov,_alpha,a)/设置影片mov的透明度的值为a. 在初学AS的过程中,对于取得,并控制属性,我觉得不用(1)表示的复合语句,改用(2)(3)组成的语句好些。 注意:不是必须先取得mc的属性以后,才能控制mc的属性的。很多情况下都可以对mc的属性直接赋值的。例如: for(i=1;i= 100) 停止循环动作,并执行循环语句之后 break; 的语句 出现在几种循环类型中,会先跳过循 环里的其余部分再执行: 在while 循环内,会回到循环顶端再 度测试条件。 continue 语法:continue; 在do while 里会到循环底部测试条件。 在for 内,会跳过循环的判断位置。 在for.in 内,会回到循环顶端,处理 下一个枚举值 执行语句,然后只要条件为 true,就 do while 语法:do statement; while (condition); 计算循环中的条件 当if 语句的条件返回false 时,就执 else 语法:else statement; 行要运行的语句 先判断init (初始值)一次,然后开始 做循环,只要condition (条件)的计 for 语法:for (init; condition; next) statement 算结果是true,就执行要运行的语句, 然后再重新判断 语法:if (condition) statement; 范例:if (mx = 5) 当if 的condition 条件式为true 时, if play(); 就执行要运行的语句 计算条件,如果条件计算结果为 while 语法:while (condition) statement; true,则在循环返回以再次计算条件 之前执行一条语句或一系列语句 6打印 打印指定影片剪辑的所有Frame,若 只想打印特定几页时,请在要打印的 Frame 加上Frame Lable:#print 语法:print (target,method); 范例:print (fish,bmovie); Method 可分为以下3 种:Bmovie :指明以电影的边界区域(bounding area )作为打印区域。可以在编写环境 (authoring)中,在那几个帧附上标签:#b。 Bmax:可指定这个混合各个边界区域的参数,来作为打印范围。 Bframe:缩放每格的对象大小,来填满打印的页面7自定义函数 在被调用帧中执行脚本,而不将播放 头移动到该帧 call 语法:call (frame) 语法:function functionname (parameters) statement function 范例:function Circle(radius) 自定义函数 this.radius = radius; method 语法:object.method = function (parameters) ; 自定义对象的方法 语法:return expression; 指定函数返回一个值,如单独使用 return 范例:function sum (a,b,c) return 或函数循环执行时,没有这个 return a + b + c; 命令,则函数返回null 8各种动作 在测试模式下,计算表达式并在 trace 语法:trace (expression); 【输出】面板中显示结果,适用于 侦错 在Actions 中加上批注说明文字,以 语法:/ comment 避免Actions 太混杂难以理解,此功 comment 范例:/ 这是一个计数器的判断式 能对于往后的维护工作,甚至是程序 二次开发都相当有帮助 () 范例:gotoAndPlay(Scene 11) 范围 范例:tellTarget(/game) 字符串 1数学运算符 + 加 范例:a = 10 ; b = 5 - e = a = b / e = 15 减 c = a - b / c = 5 * 乘 g = a * b / g = 50 / h = a/b / h = 2 除 i = a % b / i = 0 % A/B 的余数2比较运算符 = 等于 范例:a = 50; b = 30; c = 20 b c 大于 if (c = b) = c) = i = 0 大于等于 != if (a != b) 不等于 语法:escape(expression) 范例:k = escape(Happy New Year); 将参数转换为字符串,并以 URL 编 escape trace(k) 码格式对其进行编码 结果:Happy%20New%20Year 语法:eval(expression) 范例:on (release) x = “3”; 按照名称访问变量、属性、对象或影 eval trace (eval (“x”); 片剪辑,返回该变量或属性的值 结果:3 语法:getProperty(instancename, property) getProperty 返回指定属性的值 范例:getPrperty(_root.fish,_x) 返回自SWF 文件开始播放时起已经 getTimer 语法:getTimer() 过的毫秒数 返回一个包含Flash Player 版本与平 台信息的字符串,此函数在 getVersion 语法:getVersion() Test-movie Mode (测试电影模式)不 会执行 返回一个包含Movie Clip 对象的目 targetPath 语法:targetpath(movieClipObject) 标路径字符串 语法:unescape(x) 范例:k = unescape(Happy%20 New%20Year); 将 URL 编码格式的字符串转换成 unescape trace(k) ASCII 字符格式 结果:Happy New Year1转换函数 Boolean 语法:Boolean (expression) 转换指定的参数到布尔值类型 Number 语法:Number (expression) 转换指定的参数到数字类型 转换指定的参数到字符串类型 Actions 语法/范例 说明_alpha语法:instancename. _alpha=value;范例:kewpie._alpha=30;设置影片剪辑的透明值。有效值是0(全透明)到100(不透明)_visible语法:instancename._visible,boolean;范例:apple.visible = 1决定instancename 参数指定的影片是否看得见_target 语法:instancename._target 获取影片剪辑的目标路径_rotation语法:instancename._rotation;范例:setProperty (movieclip _rotation=30);设置影片剪辑的旋转角度_name语法:instancename._name范例:setProperty(movieclip _name, string);获取影片剪辑的实例名称_framesloaded语法:_framesloaded = x;范例:happy._framesloaded = 25;确定特定帧及其前面所有帧的内容是否已经加载,并且是否可在浏览器本地使用。参数:x 为时间轴上的帧数_droptarget语法:myMovieClip._droptarget范例:if (happy._droptarget = root.trash) happy._visible = false;返回该影片剪辑的绝对路径_currentframe语法:_currentframe;范例:gotoAndStop (_currentframe+5)结果:引导影片前进 5 格获取影片剪辑的当前帧_totalframes语法:_totalframes;范例:if (_currentframe=_totalframes)获取影片剪辑的总帧数_quality 语法:_quality = x;电影的质量,x 值包括低(low)、中等(medium)、高(high)或最好(best)_focusrect 语法:_focusrect =Boolean 当按Tab 键浏览时,按钮上是否有个黄色的边框出现_soundbuftime语法:instancename._soundbuftime范例:setProperty (happy _soundbuftime, 5);指定在声音开始进入流之前,预先缓冲的秒数_url语法:instancename._url;范例:setProperty (happy _url,.tw读取网址(URL)位置的影片剪辑String 语法:String (expression) 参数:expression 要被转换成字符串 的数字、布尔式或表达式 2数学函数 判断数据内容是否为数值,如果不是 isNaN 语法:isNaN (expression) 数值则返回true 将字符串转换为浮点数,直到此函数 parseFloat 语法:parseFloat(string) 遇到不是初始数字一部分的字符 将字符串转换成整数,并进一步设置 parseInt 语法:parseInt(expression, radix) 数值的进制 设置影片剪辑的x 坐标,左上角默认 _x 语法:instancename._x 为(0,0) _y 语法:instancename._y 设置影片剪辑的y 坐标 语法:instancename._xmouse _xmouse 获取鼠标位置的x 坐标 范例:happy._xmouse = 50 语法:instancename._ymouse _ymouse 获取鼠标位置的y 坐标 范例:happy._ymouse = 50; 语法:instancename._xscale 从注册点开始应用的水平缩放比例, _xscale 范例:setProperty (movieclip_xscale, 70); 以百分比表示。默认注册点为(0,0) 语法:instancename._yscale 从注册点开始应用的垂直缩放比例, _yscale 范例:setProperty (movieclip_yscale, 60); 以百分比表示。默认注册点为 (0,0) 语法:instancename._width = value; _width 设置影片剪辑的宽度 范例:setProperty (movieclip,_width, 80); 语法:instancename._height= value; _height 设置影片剪辑的高度 范例:setProperty (movieclip,_height, 50)五、对象-核心-DateActions 语法/范例 说明new Date(构造函数)语法:new Date(year,month,date, hour, min,sec,ms);范例:now = new Date();trace(now)结果:Thu Mar 7 16:01:20 GMT+0800 2001创建Date 对象getDate语法:mydate.getdate();范例:now = new Date();mydate = now.getDate()trace (mydate);按照本地时间返回指定的 Date 对象中表示月中某天的值(1 到 31 之间的整数)getDay语法:mydate.getday();范例:now = new Date();myday = now.getDay()trace (myday);按照本地时间返回指定的 Date 对象中表示周几的值(0 代表星期日,1 代表星期一,以此类推)getFullYear语法:mydate.getfullyear();范例:now = new Date();myfullyear = now.getfullyear()trace (myfullyear);按照本地时间返回指定的 Date 对象中的完整年份值(一个 4 位数,如2002)getHours语法:mydate.gethours();范例:now = new Date();myhours = now.gethours()trace (myhours);按照本地时间返回指定的 Date 对象中的小时值(0 到 23 之间的整数)getMinutes语法:mydate.getminutes();范例:now = new Date();myminutes = now.getminutes()trace (myminutes);按照本地时间返回指定的 Date 对象中的分钟值(0 到 59 之间的整数)getMonth语法:mydate.getmonth();范例:now = new Date();mymonth = now.getmonth()trace (mymonth);按照本地时间返回指定的 Date 对象中的月份值(0 代表一月,1 代表二月,以此类推)getSeconds语法:mydate.getsecondes();范例:now = new Date();myseconds = now.getseconds()trace (myseconds);按照本地时间返回指定的 Date 对象中的秒钟值(0 到 59 之间的整数)toString 语法:mydate.tostring(); 将日期转换成可读的字符串值/eschool/video/flashas/ 【21视频之Flash as脚本视频教程】/s/blog_4cc2bbc0010008r1.html 【flash中的as脚本语言基本教程(1)】首先我们要了解as要写在什么地方,什么时候as会被触发执行。1、帧:写在关键帧上面的as,当时间轴上的指针走到这个关键帧的时候,就写在这个帧上面的as就被触发执行了。常见的例子有在影片结尾的帧写上stop() 等。操作方法就是点选关键帧,然后打开as面板。2、按钮:不同于帧上面的as,按钮上面的as是要有触发条件的。要把as写在按钮上,僮鞣椒堑阊勘臧磁缓蟠蚩狝s面板。举个例子能说的更明白。假设有一个动画,要让它在播放完同时停止,那么,你要做的就是在这个动画的最后一帧写as:stop(); 再假设有个按钮,效果是按下按钮后停止播放,那么步骤如下。做一个按钮,放到主场景,点选按钮,然后打开as面板。现在如果也在按钮上写:stop(); 那么,输出的时候就会提示错误。正确的应该这样写:on(release)这里要比帧的动画多这些代码: on(release) , 整个代码翻译过来就是:当(松开)红色的代码表示鼠标的触发事件事件之一,这里用的是release 松开,按钮的常用事件:release松开releaseoutside在按钮外面松开press按下rollover鼠标进入按钮的感应区rollout鼠标离开按钮的感应区现在很明确了:写在按钮上面的as一定就是这种格式的:on(事件) 3、mc(电影剪辑)如果你看懂了上面的内容,那么写在mc上面的as和写在按钮上的大同小异。操作方法就是点选mc,然后打开as面板。看个例子:onclipevent(load)同样,mc需要一个事件来触发as的执行。翻译这段代码就是:当剪辑(载入)红色代码同样表示一个事件。mc的事件有下面这些:load 载入,当mc出现的时候执行。也就是除非卸载这个mc,否则load事件内的代码只执行一次unload 卸载,当mc卸载的时候执行enterframe 存在的每个帧。在mc存在的每个帧都要执行一次代码。如果你的场景有100个帧,有个mc从41帧开始出现到100帧才消失,那么这个mc上面的代码执行了60次mousedown 按下鼠标,在场景内任何地方都算。和按钮不一样的地方mousemove 移动鼠标,只要移动鼠标就执行代码mouseup 松开鼠标同样你要明确:写在mc上的代码一定总是这种格式:onclipevent(事件)看到这里,如果你明白的写在帧、按钮、mc上的代码有什么不一样,任务就算完成了。 FLASH 脚本语言AS基础精典教程 1 这次给大家带来MOOCK在世界性FLASH大会:FF2K1大会上的演说,要说到Action的权威,当然要数MOOCK,他写的ASDG(一本书)是可以和FLASH自带的AS字典相提并论的宝贝。虽然他是这样一个高高手,但是他的这个演讲却是非常的浅显,如果你某处读起来觉得难,那也一定是chocobo翻译得不好。(有些地方实在是太浅,我受不了就改了)这篇文章预算的演讲时间很长,所以读起来也会觉得较长,你可以分开来读。还有,本文是关于FLASH 5的AS的,毕竟FLASH 4的AS已经淘汰。 第一章:由零开始为了示范,MOOCK将会做一个多选题问答的动画来做为例子。这个例子以4种不同版本的方法来实现。对于用户来说,4种版本使用起来将没有区别,只是对于我们开发者来说,研究的就是如何改进这些FLASH代码的结构与组织。改进的重点在于:* 更便易的维护;* 更便易的扩展;* 更快捷的建设。要牢记的是,学习编程是一个过程(process)而不是一个事件(event)。如果你第一次学习到的时候不能照着完成也不必担心。接下来,MOOCK说到为了照顾没有多少编程经验的菜鸟,会由最最最简单的开始。 关于计算机语言:编程语言是用来发信息给电脑,从电脑接受信息的;编程语言也有词汇表和文法,如人类的语言类似;通过编程语言我们可以告诉电脑去做什么,也可以从他那获得信息。 关于语法和逻辑学习编程的思想比学习一种语言的语法重要。假设FLASH是懂我们语言的单词的,我们对FLASH说:“Flash, 让一个球在屏幕里面弹来弹去吧。”FLASH会什么都做不了,FLASH要我们用他的世界懂的东西,例如:movie clips, buttons, frames,来描述它要做的事。那我们再说一次:“Flash, 让一个名字叫ball_one的movie clip在屏幕里面弹来弹去吧。”我们已经用MC这个FLASH懂的东西来描述了,但FLASH还是什么都不做,因为它需要更多的信息:*这个球有多大?*它放在哪里?*一开始它首先往哪个方向运动?*它初始的速度是多少?*它在屏幕的那一个范围之内弹来弹去呢?*弹来弹去要持续多久呢?看来我们需要有逻辑结构地告诉FLASH它应该怎么去做:1、一个球指的是一个叫ball_one的圆形MC,直径50像素;2、还有一个方形MC叫square,边长300像素;3、将ball_one放在square上某处;4、以一个随机的角度,75像素每秒的速度开始移动ball_one;5、如果ball_one接触到square的某边,就弹回;6、一直不停地运动下去,知道我们让它停。如果FLASH真的懂我们语言的单词,他应该知道如何开始做了。 总结一下关键点:无论是使用什么语言,编程思想的艺术都在于用如何将逻辑步骤列出。在你开始将要做的事用计算机语言描述之前,用我们人类的语言描述一次会很有帮助。即使你将他们翻译成任何的计算机语言,他们的逻辑步骤应该是一样的。电脑不懂用假设完成去你的想法,他们没有思考能力(chocobo:就是你要把要求完全无遗漏地写出来让它运行)。第二章:基础首先了解如何在FLASH输入程序在FLASH菜单Window里面Actions可打开ACTION面板,ACTION面板分右面的脚本窗,和左面的工具窗。脚本窗就是放脚本的地方,而工具窗用于快速地输入各种ACTION,运算符,函数,属性,对象。MOOCK建议大家使用专家模式,在FLASH菜单的Edit的Preferences的Actions panel里面选Expert Mode,以后每次打开ACTION面板都会自动设置为专家模式(专家模式可直接输入代码,初学者学下去就会知道,很多代码无法在普通模式里输入)。AS的一些概念所有代码都需存于某个地方,可以是frame(帧), button(按钮), or movie clip(电影夹子)。只要你选择了某按钮或MC,你之后输入的代码就存放在它的上面了,注意此时ACTION面板上方提示为Object Actions。同理你也可以将代码存放于帧,不过此时提示为Frame Actions。当你在专家模式的时候仍无法输入代码,你首先要检查你是否选择了frame, button, 或MC来存放代码。然后我们象学所有语言一样吧,来个HELLO WORLD吧。在ACTION面板输入var message = HELLO WORLD;trace (message); 然后我们按CTRL和ENTER键,看到结果了吗?以下两章比较基础。MOOCK是骗演讲费吗?第三章:解读第一行代码:var message = HELLO WORLD;告诉FLASH记住一个名字叫message的容器(通常在计算机里称为变量(variable),在FLASH里面,变量可以装文字,和可以装数字)里面装了这样的数据(datum),内容为:HELLO WORLD。“=”等号是一个常用的运算符号(operators),在FLASH里面它不是代表相等,而是代表赋值。var 命令的含义是宣布给整个电影,此变量的内容是什么。 第二行代码:trace (message); 就是要FLASH显示message里面的内容,为什么FLASH能输出内容呢,因为当你按CTRL+ENTER又或者在网上打开这个电影的时候,你输入的每一段Action Scrpit代码,都会通过FLASH的解释器(interpreter)来解读然后执行。如果解释器能解释你的代码,他会运行它,并返回你要返回的结果,如果解释器看不懂你的代码,他也会返回错误代码告诉你错误的原因。 通常,我们发给解释器的命令不只命令这么简单,还包括命令的内容例如trace (message); 这个trace输出命令的内容就是message,计算机里就称为参数(argument或parameter),如果一个命令支持多个参数,参数之间一般用“,”来分割 。第四章 还有一些概念表达式(expression):(2 + 3) * (4 / 2.5) - 1可称为一个表达式,a+b也是表达式,需要解释器运算才得到结果的值,一个相反的概念,不需要运算的直接引用的,称为literal条件(conditionals):(look at a series of options and make a decision about what to do based on the circumstances)不翻译了,大概意思就是美女穿着新衣上街,会先看看外面会否下雨,这就叫条件判断啦。if(天气=下雨)trace(还是带把雨伞吧)循环(loop):如果要输出5个数字,你是写5遍trace命令吗?更多的就不行了吧。你可以用while和for命令来完成重复的动作。事件(events):放在frame里面的代码只要电影播放到就会执行,放在MC、button的代码则只在解释器发现预先设置好的事件被触动的时候执行。最典型的就是一下鼠标点击按钮造成press时间啦。函数(functions):将一组程序打包成一句命令来调用他,其实FLASH里面的很多命令就是函数:trace、play、gotoAndStop等等都是。第五章 开始第一个版本的选择题的制作多选题共有两道如图,大家应该养成一个好习惯,用一个独立的层来放置代码,并把该层放到最上面会更便于修改。第二层则独立放置Label。不要觉得麻烦,只要你想到世界上大部分好的闪客都是如此做的,你就不会嫌麻烦了。以下的层放的是选择题的内容,如上图。开始创建题目在question 1层的第一帧,写上题目When were movie clips introduced into Flash?(什么时候FLASH开始引入电影夹子的概念?)再写上三个选项:Version 1, Version 2, Version 3跟着我们再做一个用来选择的方框按钮,从Library里面拖出这样的三个按钮,分别放到各个选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论