tag:blogger.com,1999:blog-41043791767860873532009-04-14T00:32:37.376+08:00stopdesign.cnFlash、Web Standards and Interaction Design.sikenoreply@blogger.comBlogger70125tag:blogger.com,1999:blog-4104379176786087353.post-11366273409407330922009-04-13T23:46:00.006+08:002009-04-14T00:15:04.905+08:00一个简单的鼠标手势模拟<a href="http://www.stopdesign.cn/file/gesture.swf" rel="shadowbox;height=300;width=590">Demo</a><br /><br /><pre class="textmate-source blackboard_black"><span class="source source_actionscript source_actionscript_3"><span class="comment comment_block comment_block_actionscript comment_block_actionscript_3">/**<br /> * @author chenqian<br /> * @contact yesterday[at]gmail.com<br /> * @URI www.stopdesign.cn<br />*/</span><br /><br /><span class="meta meta_package meta_package_actionscript meta_package_actionscript_3"><span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">package</span> <br /></span><span class="meta meta_package meta_package_actionscript meta_package_actionscript_3">{<br /> <span class="storage storage_type storage_type_import storage_type_import_actionscript storage_type_import_actionscript_3">import <span class="support support_class support_class_actionscript support_class_actionscript_3">flash.display.*</span><span class="punctuation punctuation_terminator punctuation_terminator_actionscript punctuation_terminator_actionscript_3">;</span></span><br /> <span class="storage storage_type storage_type_import storage_type_import_actionscript storage_type_import_actionscript_3">import <span class="support support_class support_class_actionscript support_class_actionscript_3">flash.events.*</span><span class="punctuation punctuation_terminator punctuation_terminator_actionscript punctuation_terminator_actionscript_3">;</span></span><br /> <span class="storage storage_type storage_type_import storage_type_import_actionscript storage_type_import_actionscript_3">import <span class="support support_class support_class_actionscript support_class_actionscript_3">flash.geom.Point</span><span class="punctuation punctuation_terminator punctuation_terminator_actionscript punctuation_terminator_actionscript_3">;</span></span><br /> <span class="storage storage_type storage_type_import storage_type_import_actionscript storage_type_import_actionscript_3">import <span class="support support_class support_class_actionscript support_class_actionscript_3">flash.text.TextField</span><span class="punctuation punctuation_terminator punctuation_terminator_actionscript punctuation_terminator_actionscript_3">;</span></span><br /> <br /><span class="meta meta_class meta_class_actionscript meta_class_actionscript_3"> <span class="storage storage_type storage_type_namespace storage_type_namespace_actionscript storage_type_namespace_actionscript_3">public</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_actionscript entity_name_type_class_actionscript_3">MouseGesture</span> <span class="meta meta_definition meta_definition_class meta_definition_class_extends meta_definition_class_extends_actionscript meta_definition_class_extends_actionscript_3"><span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">extends</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_actionscript entity_name_type_class_actionscript_3">Sprite</span><br /> {</span><br /> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">public</span> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">static</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">const</span> <span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">GESTURE_UP</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span><span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">String</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span><span class="string string_quoted string_quoted_double string_quoted_double_actionscript string_quoted_double_actionscript_3">"GESTURE_UP"</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">public</span> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">static</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">const</span> <span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">GESTURE_RIGHT</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span><span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">String</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span><span class="string string_quoted string_quoted_double string_quoted_double_actionscript string_quoted_double_actionscript_3">"GESTURE_RIGHT"</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">public</span> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">static</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">const</span> <span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">GESTURE_DOWN</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span><span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">String</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span><span class="string string_quoted string_quoted_double string_quoted_double_actionscript string_quoted_double_actionscript_3">"GESTURE_DOWN"</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">public</span> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">static</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">const</span> <span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">GESTURE_LEFT</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span><span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">String</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span><span class="string string_quoted string_quoted_double string_quoted_double_actionscript string_quoted_double_actionscript_3">"GESTURE_LEFT"</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// the color of the drawing line<br /></span> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">public</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> lineColor<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span><span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">Number</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span> <br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// the size of the drawing line <br /></span> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">public</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> lineSize<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span><span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">Number</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span> <br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// where the mouse start drawing<br /></span> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">private</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_startPoint</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Point</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// where the mouse stop drawing<br /></span> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">private</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_newPoint</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Point</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// the drawing direction<br /></span> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">private</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_direction</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span> <span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">String</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// the drawing line<br /></span> <span class="storage storage_modifier storage_modifier_actionscript storage_modifier_actionscript_3">private</span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_drawLine</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Sprite</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <br /><span class="meta meta_definition meta_definition_method meta_definition_method_actionscript meta_definition_method_actionscript_3"> <span class="storage storage_type storage_type_namespace storage_type_namespace_actionscript storage_type_namespace_actionscript_3">public</span> <span class="storage storage_type storage_type_function storage_type_function_actionscript storage_type_function_actionscript_3">function</span> <span class="entity entity_name entity_name_function entity_name_function_actionscript entity_name_function_actionscript_3">MouseGesture</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_actionscript punctuation_definition_parameters_begin_actionscript_3">(</span><span class="storage storage_type storage_type_rest storage_type_rest_actionscript storage_type_rest_actionscript_3">...</span>rest)</span><span class="meta meta_function meta_function_actionscript meta_function_actionscript_3">{<br /> <span class="support support_function support_function_global support_function_global_actionscript support_function_global_actionscript_3">trace</span>(<span class="string string_quoted string_quoted_double string_quoted_double_actionscript string_quoted_double_actionscript_3">"mouse gesture init"</span>)<br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// default mouse gestrue line color and size<br /></span> lineColor<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span><span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">0xFF0000</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> lineSize<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">2</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// parse parameters<br /></span> <span class="keyword keyword_control keyword_control_actionscript keyword_control_actionscript_3">if</span>(rest<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">[</span><span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">0</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">]</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">!=</span> <span class="constant constant_language constant_language_null constant_language_null_actionscript constant_language_null_actionscript_3">null</span>){<span class="meta meta_scope meta_scope_block meta_scope_block_actionscript meta_scope_block_actionscript_3"> <br /> lineColor <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> rest<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">[</span><span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">0</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">];</span><br /> <br /> </span>}<br /> <span class="keyword keyword_control keyword_control_actionscript keyword_control_actionscript_3">if</span>(rest<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">[</span><span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">1</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">]</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">!=</span> <span class="constant constant_language constant_language_null constant_language_null_actionscript constant_language_null_actionscript_3">null</span>){<span class="meta meta_scope meta_scope_block meta_scope_block_actionscript meta_scope_block_actionscript_3"><br /> lineSize<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span>rest<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">[</span><span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">1</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">];</span> <br /> </span>}<br /> <br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">//add the shape, used for drawing the gesture<br /></span> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> <span class="support support_function support_function_top-level support_function_top-level_actionscript support_function_top-level_actionscript_3">child</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span><span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Shape</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> <span class="keyword keyword_operator keyword_operator_actionscript keyword_operator_actionscript_3">new</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Shape</span>()<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_top-level support_function_top-level_actionscript support_function_top-level_actionscript_3">child</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">graphics</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">beginFill</span>(<span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">0x000000</span>)<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_top-level support_function_top-level_actionscript support_function_top-level_actionscript_3">child</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">graphics</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">lineStyle</span>(<span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">0</span>, <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">0xFFFFFF</span>)<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_top-level support_function_top-level_actionscript support_function_top-level_actionscript_3">child</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">graphics</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">drawRect</span>(<span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">0</span>, <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">0</span>, <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">1600</span>, <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">1600</span>)<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_top-level support_function_top-level_actionscript support_function_top-level_actionscript_3">child</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">graphics</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">endFill</span>()<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">addChild</span>(<span class="support support_function support_function_top-level support_function_top-level_actionscript support_function_top-level_actionscript_3">child</span>)<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_top-level support_function_top-level_actionscript support_function_top-level_actionscript_3">child</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">alpha</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span><span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">0</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_drawLine</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> <span class="keyword keyword_operator keyword_operator_actionscript keyword_operator_actionscript_3">new</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Sprite</span>()<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">addChild</span>( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_drawLine</span> )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">addEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_DOWN</span> , mouseDownHandler )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> }</span><br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// set the gesture color<br /></span><span class="meta meta_definition meta_definition_method meta_definition_method_actionscript meta_definition_method_actionscript_3"> <span class="storage storage_type storage_type_namespace storage_type_namespace_actionscript storage_type_namespace_actionscript_3">public</span> <span class="storage storage_type storage_type_function storage_type_function_actionscript storage_type_function_actionscript_3">function</span> <span class="entity entity_name entity_name_function entity_name_function_actionscript entity_name_function_actionscript_3">setLineColor</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_actionscript punctuation_definition_parameters_begin_actionscript_3">(</span><span class="variable variable_paramater variable_paramater_method variable_paramater_method_actionscript variable_paramater_method_actionscript_3">c</span><span class="punctuation punctuation_seperator punctuation_seperator_actionscript punctuation_seperator_actionscript_3">:</span><span class="support support_class support_class_actionscript support_class_actionscript_3">Number</span>)<span class="meta meta_method-return meta_method-return_actionscript meta_method-return_actionscript_3"><span class="punctuation punctuation_seperator punctuation_seperator_return-type punctuation_seperator_return-type_actionscript punctuation_seperator_return-type_actionscript_3">:</span><span class="keyword keyword_void keyword_void_actionscript keyword_void_actionscript_3">void</span></span></span><span class="meta meta_function meta_function_actionscript meta_function_actionscript_3">{<br /> lineColor<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span><span class="support support_property support_property_fl support_property_fl_actionscript support_property_fl_actionscript_3">c</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> }</span><br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// set the gesture size<br /></span><span class="meta meta_definition meta_definition_method meta_definition_method_actionscript meta_definition_method_actionscript_3"> <span class="storage storage_type storage_type_namespace storage_type_namespace_actionscript storage_type_namespace_actionscript_3">public</span> <span class="storage storage_type storage_type_function storage_type_function_actionscript storage_type_function_actionscript_3">function</span> <span class="entity entity_name entity_name_function entity_name_function_actionscript entity_name_function_actionscript_3">setLineSize</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_actionscript punctuation_definition_parameters_begin_actionscript_3">(</span><span class="variable variable_paramater variable_paramater_method variable_paramater_method_actionscript variable_paramater_method_actionscript_3">s</span><span class="punctuation punctuation_seperator punctuation_seperator_actionscript punctuation_seperator_actionscript_3">:</span><span class="support support_class support_class_actionscript support_class_actionscript_3">Number</span>)<span class="meta meta_method-return meta_method-return_actionscript meta_method-return_actionscript_3"><span class="punctuation punctuation_seperator punctuation_seperator_return-type punctuation_seperator_return-type_actionscript punctuation_seperator_return-type_actionscript_3">:</span><span class="keyword keyword_void keyword_void_actionscript keyword_void_actionscript_3">void</span></span></span><span class="meta meta_function meta_function_actionscript meta_function_actionscript_3">{<br /> lineSize<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span>s<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> }</span><br /> <br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// fire when user press mouse down<br /></span><span class="meta meta_definition meta_definition_method meta_definition_method_actionscript meta_definition_method_actionscript_3"> <span class="storage storage_type storage_type_namespace storage_type_namespace_actionscript storage_type_namespace_actionscript_3">private</span> <span class="storage storage_type storage_type_function storage_type_function_actionscript storage_type_function_actionscript_3">function</span> <span class="entity entity_name entity_name_function entity_name_function_actionscript entity_name_function_actionscript_3">mouseDownHandler</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_actionscript punctuation_definition_parameters_begin_actionscript_3">(</span> <span class="variable variable_paramater variable_paramater_method variable_paramater_method_actionscript variable_paramater_method_actionscript_3">e</span><span class="punctuation punctuation_seperator punctuation_seperator_actionscript punctuation_seperator_actionscript_3">:</span><span class="support support_class support_class_actionscript support_class_actionscript_3">MouseEvent</span> )<span class="meta meta_method-return meta_method-return_actionscript meta_method-return_actionscript_3"><span class="punctuation punctuation_seperator punctuation_seperator_return-type punctuation_seperator_return-type_actionscript punctuation_seperator_return-type_actionscript_3">:</span><span class="keyword keyword_void keyword_void_actionscript keyword_void_actionscript_3">void</span><br /> </span></span><span class="meta meta_function meta_function_actionscript meta_function_actionscript_3">{<br /> <br /> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_color</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span> <span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">Number</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> lineColor<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_size</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span> <span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">Number</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> lineSize<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_startPoint</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> <span class="keyword keyword_operator keyword_operator_actionscript keyword_operator_actionscript_3">new</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Point</span>( <span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">mouseX</span> , <span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">mouseY</span> )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_drawLine</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">graphics</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">lineStyle</span>( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_size</span> , <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_color</span> , <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">1.0</span> )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_drawLine</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">graphics</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">moveTo</span>( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_startPoint</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">x</span> , <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_startPoint</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">y</span> )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">addEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_MOVE</span> , mouseMoveHandler )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">addEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_UP</span> , mouseUpHander )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> }</span><br /> <br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// fire when user move the mouse<br /></span><span class="meta meta_definition meta_definition_method meta_definition_method_actionscript meta_definition_method_actionscript_3"> <span class="storage storage_type storage_type_namespace storage_type_namespace_actionscript storage_type_namespace_actionscript_3">private</span> <span class="storage storage_type storage_type_function storage_type_function_actionscript storage_type_function_actionscript_3">function</span> <span class="entity entity_name entity_name_function entity_name_function_actionscript entity_name_function_actionscript_3">mouseMoveHandler</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_actionscript punctuation_definition_parameters_begin_actionscript_3">(</span> <span class="variable variable_paramater variable_paramater_method variable_paramater_method_actionscript variable_paramater_method_actionscript_3">e</span><span class="punctuation punctuation_seperator punctuation_seperator_actionscript punctuation_seperator_actionscript_3">:</span><span class="support support_class support_class_actionscript support_class_actionscript_3">MouseEvent</span> )<span class="meta meta_method-return meta_method-return_actionscript meta_method-return_actionscript_3"><span class="punctuation punctuation_seperator punctuation_seperator_return-type punctuation_seperator_return-type_actionscript punctuation_seperator_return-type_actionscript_3">:</span><span class="keyword keyword_void keyword_void_actionscript keyword_void_actionscript_3">void</span><br /> </span></span><span class="meta meta_function meta_function_actionscript meta_function_actionscript_3">{<br /> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_newPoint</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> <span class="keyword keyword_operator keyword_operator_actionscript keyword_operator_actionscript_3">new</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Point</span>( <span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">mouseX</span> , <span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">mouseY</span> )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_distance</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span> <span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">Number</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Point</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">distance</span>( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_startPoint</span> , <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_newPoint</span> )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span> <br /> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_drawLine</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">graphics</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">lineTo</span>( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_newPoint</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">x</span> , <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_newPoint</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">y</span> )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> }</span><br /> <br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// fire when user's mouse is up<br /></span><span class="meta meta_definition meta_definition_method meta_definition_method_actionscript meta_definition_method_actionscript_3"> <span class="storage storage_type storage_type_namespace storage_type_namespace_actionscript storage_type_namespace_actionscript_3">private</span> <span class="storage storage_type storage_type_function storage_type_function_actionscript storage_type_function_actionscript_3">function</span> <span class="entity entity_name entity_name_function entity_name_function_actionscript entity_name_function_actionscript_3">mouseUpHander</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_actionscript punctuation_definition_parameters_begin_actionscript_3">(</span> <span class="variable variable_paramater variable_paramater_method variable_paramater_method_actionscript variable_paramater_method_actionscript_3">e</span><span class="punctuation punctuation_seperator punctuation_seperator_actionscript punctuation_seperator_actionscript_3">:</span><span class="support support_class support_class_actionscript support_class_actionscript_3">MouseEvent</span> )<span class="meta meta_method-return meta_method-return_actionscript meta_method-return_actionscript_3"><span class="punctuation punctuation_seperator punctuation_seperator_return-type punctuation_seperator_return-type_actionscript punctuation_seperator_return-type_actionscript_3">:</span><span class="keyword keyword_void keyword_void_actionscript keyword_void_actionscript_3">void</span><br /> </span></span><span class="meta meta_function meta_function_actionscript meta_function_actionscript_3">{<br /> detectDir()<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span> <br /> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_drawLine</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">graphics</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">clear</span>()<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">removeEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_MOVE</span> , mouseMoveHandler )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">removeEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_UP</span> , mouseUpHander )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> }</span><br /> <br /> <span class="comment comment_block comment_block_actionscript comment_block_actionscript_3">/* detecting the mouse move direction */</span><br /><span class="meta meta_definition meta_definition_method meta_definition_method_actionscript meta_definition_method_actionscript_3"> <span class="storage storage_type storage_type_namespace storage_type_namespace_actionscript storage_type_namespace_actionscript_3">private</span> <span class="storage storage_type storage_type_function storage_type_function_actionscript storage_type_function_actionscript_3">function</span> <span class="entity entity_name entity_name_function entity_name_function_actionscript entity_name_function_actionscript_3">detectDir</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_actionscript punctuation_definition_parameters_begin_actionscript_3">(</span>)<span class="meta meta_method-return meta_method-return_actionscript meta_method-return_actionscript_3"><span class="punctuation punctuation_seperator punctuation_seperator_return-type punctuation_seperator_return-type_actionscript punctuation_seperator_return-type_actionscript_3">:</span><span class="keyword keyword_void keyword_void_actionscript keyword_void_actionscript_3">void</span> <br /> </span></span><span class="meta meta_function meta_function_actionscript meta_function_actionscript_3">{<br /> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_vector</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span><span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Point</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_newPoint</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_function support_function_flash support_function_flash_actionscript support_function_flash_actionscript_3">subtract</span>( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_startPoint</span> )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="storage storage_type storage_type_actionscript storage_type_actionscript_3">var</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_angle</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">:</span> <span class="support support_type support_type_function support_type_function_global support_type_function_global_actionscript support_type_function_global_actionscript_3">Number</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">=</span> <span class="support support_class support_class_top-level support_class_top-level_actionscript support_class_top-level_actionscript_3">Math</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_function support_function_top-level support_function_top-level_actionscript support_function_top-level_actionscript_3">atan2</span>( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_vector</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">y</span> , <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_vector</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="support support_property support_property_mx support_property_mx_actionscript support_property_mx_actionscript_3">x</span> ) <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">*</span> <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">180</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">/</span> <span class="support support_class support_class_top-level support_class_top-level_actionscript support_class_top-level_actionscript_3">Math</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">PI</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// move down<br /></span> <span class="keyword keyword_control keyword_control_actionscript keyword_control_actionscript_3">if</span> ( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_angle</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">>=</span> <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">45</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">&&</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_angle</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3"><</span> <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">125</span> ){<span class="meta meta_scope meta_scope_block meta_scope_block_actionscript meta_scope_block_actionscript_3"><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">dispatchEvent</span>(<span class="keyword keyword_operator keyword_operator_actionscript keyword_operator_actionscript_3">new</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Event</span>(MouseGesture<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">GESTURE_DOWN</span>,<span class="constant constant_language constant_language_boolean constant_language_boolean_true constant_language_boolean_true_actionscript constant_language_boolean_true_actionscript_3">true</span>))<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">removeEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_MOVE</span> , mouseMoveHandler )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">removeEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_UP</span> , mouseUpHander )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span> <br /> </span>} <br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// move left<br /></span> <span class="keyword keyword_control keyword_control_actionscript keyword_control_actionscript_3">else</span> <span class="keyword keyword_control keyword_control_actionscript keyword_control_actionscript_3">if</span> ( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_angle</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">>=</span> <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">125</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">||</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_angle</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3"><</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">-</span><span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">125</span> ){<span class="meta meta_scope meta_scope_block meta_scope_block_actionscript meta_scope_block_actionscript_3"><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">dispatchEvent</span>(<span class="keyword keyword_operator keyword_operator_actionscript keyword_operator_actionscript_3">new</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Event</span>(MouseGesture<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">GESTURE_LEFT</span>,<span class="constant constant_language constant_language_boolean constant_language_boolean_true constant_language_boolean_true_actionscript constant_language_boolean_true_actionscript_3">true</span>)) <br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">removeEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_MOVE</span> , mouseMoveHandler )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">removeEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_UP</span> , mouseUpHander )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span> <br /> <br /> </span>} <br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// move right<br /></span> <span class="keyword keyword_control keyword_control_actionscript keyword_control_actionscript_3">else</span> <span class="keyword keyword_control keyword_control_actionscript keyword_control_actionscript_3">if</span> ( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_angle</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">>=</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">-</span><span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">45</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">&&</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_angle</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3"><</span> <span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">45</span> ){<span class="meta meta_scope meta_scope_block meta_scope_block_actionscript meta_scope_block_actionscript_3"><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">dispatchEvent</span>(<span class="keyword keyword_operator keyword_operator_actionscript keyword_operator_actionscript_3">new</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Event</span>(MouseGesture<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">GESTURE_RIGHT</span>,<span class="constant constant_language constant_language_boolean constant_language_boolean_true constant_language_boolean_true_actionscript constant_language_boolean_true_actionscript_3">true</span>))<br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">removeEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_MOVE</span> , mouseMoveHandler )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">removeEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_UP</span> , mouseUpHander )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span> <br /> <br /> </span>} <br /> <span class="comment comment_line comment_line_double-slash comment_line_double-slash_actionscript comment_line_double-slash_actionscript_3">// move up<br /></span> <span class="keyword keyword_control keyword_control_actionscript keyword_control_actionscript_3">else</span> <span class="keyword keyword_control keyword_control_actionscript keyword_control_actionscript_3">if</span> ( <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_angle</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">>=</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">-</span><span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">125</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">&&</span> <span class="variable variable_language variable_language_private variable_language_private_actionscript variable_language_private_actionscript_3">_angle</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3"><</span> <span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">-</span><span class="constant constant_numeric constant_numeric_actionscript constant_numeric_actionscript_3">45</span> ){<span class="meta meta_scope meta_scope_block meta_scope_block_actionscript meta_scope_block_actionscript_3"><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">dispatchEvent</span>(<span class="keyword keyword_operator keyword_operator_actionscript keyword_operator_actionscript_3">new</span> <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">Event</span>(MouseGesture<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">GESTURE_UP</span>,<span class="constant constant_language constant_language_boolean constant_language_boolean_true constant_language_boolean_true_actionscript constant_language_boolean_true_actionscript_3">true</span>))<br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">removeEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_MOVE</span> , mouseMoveHandler )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span><br /> <span class="support support_function support_function_mx support_function_mx_actionscript support_function_mx_actionscript_3">removeEventListener</span>( <span class="support support_class support_class_flash support_class_flash_actionscript support_class_flash_actionscript_3">MouseEvent</span><span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_dot keyword_operator_symbolic_dot_actionscript keyword_operator_symbolic_dot_actionscript_3">.</span><span class="constant constant_language constant_language_conventional constant_language_conventional_actionscript constant_language_conventional_actionscript_3">MOUSE_UP</span> , mouseUpHander )<span class="keyword keyword_operator keyword_operator_symbolic keyword_operator_symbolic_actionscript keyword_operator_symbolic_actionscript_3">;</span> <br /> <br /> </span>} <br /> }</span><br /> }</span><br />}</span></span></pre><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-1136627340940733092?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-69421690638100966352009-04-09T18:47:00.004+08:002009-04-09T18:55:31.218+08:00简单地玩augmented reality<img src="http://www.stopdesign.cn/file/printme.jpg" alt="print" /><br /><br />把<a href="http://www.stopdesign.cn/file/printme.jpg" title"printme">上面这张图片</a>发送到你手机中,比如用gmail发给自己,然后在手机中下载打开,接着前往<a href="http://ge.ecomagination.com/smartgrid/ar/turbine.html?c_id=Huff" title="ar">这个网址</a>,打开摄影头,就有类似的东西出现在你面前了:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stopdesign.cn/uploaded_images/ar-752262.png"><img style="cursor:pointer; cursor:hand;width: 400px; height: 318px;" src="http://www.stopdesign.cn/uploaded_images/ar-752044.png" border="0" alt="" /></a><br /><a href="http://ge.ecomagination.com/smartgrid/?c_id=Huff#/augmented_reality" title="more ar">更多...</a><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-6942169063810096635?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-10224335632656486402008-12-27T15:22:00.003+08:002008-12-27T15:34:54.849+08:00SIMBL与AIR应用的冲突如果你在使用 HTML+JS 的方式构建 AIR 应用,那么在 mac 中可能由 SIMBL (Smart InputManager Bundle Loader) <a href="http://www.mikechambers.com/blog/2008/12/03/have-you-had-any-issues-with-adobe-air-15/#comment-15162">引起 crash</a>,不管应用多简单。解决方法是暂时重命名SIMBL文件夹(或等AIR更新),比如改为: /Library/Application Support/SIMBL01/<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-1022433563265648640?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-82797140046169279992008-12-09T20:36:00.005+08:002008-12-09T20:52:44.729+08:00常用的DOM操作、事件来自:<a href="http://www.dustindiaz.com/add-remove-elements-reprise/">Dustin Diaz</a>,我加上了删除事件。<br /><pre class="textmate-source blackboard_black"><span class="source source_js"><span class="storage storage_type storage_type_js">var</span> Dom <span class="keyword keyword_operator keyword_operator_js">=</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="meta meta_function meta_function_json meta_function_json_js"><span class="entity entity_name entity_name_function entity_name_function_js">get</span>: <span class="storage storage_type storage_type_function storage_type_function_js">function</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_js">(</span><span class="variable variable_parameter variable_parameter_function variable_parameter_function_js">el</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_end punctuation_definition_parameters_end_js">)</span></span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="keyword keyword_control keyword_control_js">if</span> <span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="keyword keyword_operator keyword_operator_js">typeof</span> el <span class="keyword keyword_operator keyword_operator_js">===</span> <span class="string string_quoted string_quoted_single string_quoted_single_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">'</span>string<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">'</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="keyword keyword_control keyword_control_js">return</span> <span class="support support_class support_class_js">document</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span><span class="support support_function support_function_dom support_function_dom_js">getElementById</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span> <span class="keyword keyword_control keyword_control_js">else</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="keyword keyword_control keyword_control_js">return</span> el<span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">,</span><br /> <span class="meta meta_function meta_function_json meta_function_json_js"><span class="entity entity_name entity_name_function entity_name_function_js">add</span>: <span class="storage storage_type storage_type_function storage_type_function_js">function</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_js">(</span><span class="variable variable_parameter variable_parameter_function variable_parameter_function_js">el, dest</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_end punctuation_definition_parameters_end_js">)</span></span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="storage storage_type storage_type_js">var</span> el <span class="keyword keyword_operator keyword_operator_js">=</span> <span class="variable variable_language variable_language_js">this</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>get<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="storage storage_type storage_type_js">var</span> dest <span class="keyword keyword_operator keyword_operator_js">=</span> <span class="variable variable_language variable_language_js">this</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>get<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>dest<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> dest<span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span><span class="support support_function support_function_dom support_function_dom_js">appendChild</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">,</span><br /> <span class="meta meta_function meta_function_json meta_function_json_js"><span class="entity entity_name entity_name_function entity_name_function_js">remove</span>: <span class="storage storage_type storage_type_function storage_type_function_js">function</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_js">(</span><span class="variable variable_parameter variable_parameter_function variable_parameter_function_js">el</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_end punctuation_definition_parameters_end_js">)</span></span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="storage storage_type storage_type_js">var</span> el <span class="keyword keyword_operator keyword_operator_js">=</span> <span class="variable variable_language variable_language_js">this</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>get<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> el<span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span><span class="support support_constant support_constant_dom support_constant_dom_js">parentNode</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span><span class="support support_function support_function_dom support_function_dom_js">removeChild</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="storage storage_type storage_type_js">var</span> Event <span class="keyword keyword_operator keyword_operator_js">=</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="meta meta_function meta_function_json meta_function_json_js"><span class="entity entity_name entity_name_function entity_name_function_js">add</span>: <span class="storage storage_type storage_type_function storage_type_function_js">function</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_js">(</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_end punctuation_definition_parameters_end_js">)</span></span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="keyword keyword_control keyword_control_js">if</span> <span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="support support_class support_class_js">window</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>addEventListener<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="keyword keyword_control keyword_control_js">return</span> <span class="storage storage_type storage_type_js">function</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>type<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>fn<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> Dom<span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>get<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>addEventListener<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>type<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>fn<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span><span class="constant constant_language constant_language_boolean constant_language_boolean_false constant_language_boolean_false_js">false</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span> <span class="keyword keyword_control keyword_control_js">else</span> <span class="keyword keyword_control keyword_control_js">if</span> <span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="support support_class support_class_js">window</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>attachEvent<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="keyword keyword_control keyword_control_js">return</span> <span class="storage storage_type storage_type_js">function</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>type<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>fn<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="storage storage_type storage_type_js">var</span> <span class="meta meta_function meta_function_js"><span class="entity entity_name entity_name_function entity_name_function_js">f</span> = <span class="storage storage_type storage_type_function storage_type_function_js">function</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_js">(</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_end punctuation_definition_parameters_end_js">)</span></span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> fn<span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span><span class="support support_function support_function_js">call</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>Dom<span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>get<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span><span class="support support_class support_class_js">window</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span><span class="support support_class support_class_js">event</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> Dom<span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>get<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span><span class="support support_function support_function_js">attachEvent</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_single string_quoted_single_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">'</span>on<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">'</span></span> <span class="keyword keyword_operator keyword_operator_js">+</span> type<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>f<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span><span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">,</span><br /> <span class="meta meta_function meta_function_json meta_function_json_js"><span class="entity entity_name entity_name_function entity_name_function_js">remove</span>:<span class="storage storage_type storage_type_function storage_type_function_js">function</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_js">(</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_end punctuation_definition_parameters_end_js">)</span></span><span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="keyword keyword_control keyword_control_js">if</span> <span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="support support_class support_class_js">window</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>removeEventListener<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="keyword keyword_control keyword_control_js">return</span> <span class="storage storage_type storage_type_js">function</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>type<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">,</span>fn<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> Dom<span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>get<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>removeEventListener<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>type<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>fn<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">,</span><span class="constant constant_language constant_language_boolean constant_language_boolean_false constant_language_boolean_false_js">false</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span> <br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span> <span class="keyword keyword_control keyword_control_js">else</span> <span class="keyword keyword_control keyword_control_js">if</span> <span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="support support_class support_class_js">window</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>detachEvent<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> <span class="keyword keyword_control keyword_control_js">return</span> <span class="storage storage_type storage_type_js">function</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>type<span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>fn<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><br /> Dom<span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>get<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span>el<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span><span class="support support_function support_function_js">detachEvent</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_single string_quoted_single_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">'</span>on<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">'</span></span> <span class="keyword keyword_operator keyword_operator_js">+</span> type<span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span><br /> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span></span></pre><br />使用时类似:Event.add('domId', 'click',install); <br />和 <acronym title="actionscript">AS</acronym> 中的 tweener 语法挺像的:<br /><pre>Tweener.addTween(event.displayObject3D, {<br /> rotationY:180,<br /> time:0.5,<br /> transition:"easeOutQuart"<br /> } ); <br /></pre><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-8279714004616927999?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-36272073013011222542008-11-27T21:21:00.001+08:002008-11-27T21:28:04.973+08:00分享2个bookmarklet<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stopdesign.cn/uploaded_images/jash-739967.png"><img style="cursor:pointer; cursor:hand;" src="http://www.stopdesign.cn/uploaded_images/jash-739962.png" border="0" alt="" /></a><br />一个是 <a href="http://karmatics.com/aardvark/" title="Aardvark">Aardvark</a>, 一点不逊于 firebug 的东西,在许多介绍 web 开发用的 firefox 插件的文章都没有提到过。Aardvark 在不太熟悉现有 HTML 结构与已有 CSS 规则时显得特别方便,因为通过它可以方便的查阅整个 HTML DOM 的相关信息,包括实时地删除它们、改变颜色、查看格式化的部分源代码等等。 Aardvark 同时提供了 firefox 插件和 bookmarklet。<br />另一个是 <a href="http://www.billyreisinger.com/jash/screenshots.html" title="jash">Jash</a>, 跟 ipython 一样,作为一个好的 console,自动补全自然必不可少,console 本身可以做为很好的学习工具。Jash 同样是基于 bookmarklet, 不用考虑跨浏览器的问题。比如我现在大部分时间都用 safari, 配合 quicksilver 的 safari module,就可以方便地调用。Jash 可以实时地写入 CSS, 这在 <acronym title="internet explorer">IE</acronym> 中就特别有用,比如要测试远程的 CSS 规则,在 Jash 中 ctrl+s 再把样式定义写进去就可以了。Jash 本身也是用 javascript 写成的,所以如果你觉得哪个地方用得不顺手,完全可以自己改写它。<br />这2个东西都有良好的快捷键支持,好软件都有这个特征。<br />写完这个就发现:<br /><a href="http://www.webresourcesdepot.com/15-must-have-bookmarklets-for-web-designers-and-developers/">15 Must-Have Bookmarklets For Web Designers And Developers</a><br />另外,这个周末会去 <a href="http://www.d2forum.org/d2/3/index.html">D2 论坛</a>看看,可以看到一些熟悉的 ID。<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-3627207301301122254?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-73559264317290213282008-11-26T21:20:00.006+08:002008-11-27T20:53:41.626+08:00Social software graph<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stopdesign.cn/uploaded_images/grap-775115.png"><img style="cursor:pointer; cursor:hand;" src="http://www.stopdesign.cn/uploaded_images/grap-775115.png" border="0" alt="" /></a><br /><a href="http://arthurkoziel.com/2008/11/23/social-software-graph/">via</a><br /><pre class="textmate-source blackboard_black"><span class="source source_python"><span class="keyword keyword_control keyword_control_import keyword_control_import_from keyword_control_import_from_python">from</span> random <span class="keyword keyword_control keyword_control_import keyword_control_import_python">import</span> uniform<br />graph <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_python">=</span> <span class="meta meta_function-call meta_function-call_python">ximport<span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_begin punctuation_definition_arguments_begin_python">(</span><span class="meta meta_function-call meta_function-call_arguments meta_function-call_arguments_python"><span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>graph<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span></span><span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_end punctuation_definition_arguments_end_python">)</span></span><br /><br /><span class="meta meta_function-call meta_function-call_python">size<span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_begin punctuation_definition_arguments_begin_python">(</span><span class="meta meta_function-call meta_function-call_arguments meta_function-call_arguments_python"><span class="constant constant_numeric constant_numeric_integer constant_numeric_integer_decimal constant_numeric_integer_decimal_python">500</span>, <span class="constant constant_numeric constant_numeric_integer constant_numeric_integer_decimal constant_numeric_integer_decimal_python">300</span></span><span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_end punctuation_definition_arguments_end_python">)</span></span><br /><br /><span class="meta meta_function meta_function_python"><span class="storage storage_type storage_type_function storage_type_function_python">def</span> <span class="entity entity_name entity_name_function entity_name_function_python">curly_edge</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_python">(</span><span class="meta meta_function meta_function_parameters meta_function_parameters_python"><span class="variable variable_parameter variable_parameter_function variable_parameter_function_python">style</span><span class="punctuation punctuation_separator punctuation_separator_parameters punctuation_separator_parameters_python">,</span> <span class="variable variable_parameter variable_parameter_function variable_parameter_function_python">path</span><span class="punctuation punctuation_separator punctuation_separator_parameters punctuation_separator_parameters_python">,</span> <span class="variable variable_parameter variable_parameter_function variable_parameter_function_python">edge</span><span class="punctuation punctuation_separator punctuation_separator_parameters punctuation_separator_parameters_python">,</span> <span class="variable variable_parameter variable_parameter_function variable_parameter_function_python">alpha</span><span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_python">=</span><span class="constant constant_numeric constant_numeric_float constant_numeric_float_python">1.0</span></span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_end punctuation_definition_parameters_end_python">)</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_begin punctuation_section_function_begin_python">:</span></span><br /> <span class="meta meta_function-call meta_function-call_python">path.moveto<span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_begin punctuation_definition_arguments_begin_python">(</span><span class="meta meta_function-call meta_function-call_arguments meta_function-call_arguments_python">edge.node1.x, edge.node1.y</span><span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_end punctuation_definition_arguments_end_python">)</span></span><br /> <span class="meta meta_function-call meta_function-call_python">path.curveto<span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_begin punctuation_definition_arguments_begin_python">(</span><span class="meta meta_function-call meta_function-call_arguments meta_function-call_arguments_python"><br /> edge.node1.x <span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_python">+</span> <span class="constant constant_numeric constant_numeric_integer constant_numeric_integer_decimal constant_numeric_integer_decimal_python">40</span>,<br /> edge.node1.y,<br /> edge.node2.x <span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_python">+</span> <span class="constant constant_numeric constant_numeric_integer constant_numeric_integer_decimal constant_numeric_integer_decimal_python">40</span>,<br /> edge.node2.y,<br /> edge.node2.x,<br /> edge.node2.y,<br /> </span><span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_end punctuation_definition_arguments_end_python">)</span></span><br />g <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_python">=</span> <span class="meta meta_function-call meta_function-call_python">graph.create<span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_begin punctuation_definition_arguments_begin_python">(</span><span class="meta meta_function-call meta_function-call_arguments meta_function-call_arguments_python"><span class="variable variable_parameter variable_parameter_function variable_parameter_function_python">distance</span><span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_python">=</span><span class="constant constant_numeric constant_numeric_float constant_numeric_float_python">0.4</span></span><span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_end punctuation_definition_arguments_end_python">)</span></span><br /><br /><span class="keyword keyword_control keyword_control_flow keyword_control_flow_python">for</span> service <span class="keyword keyword_operator keyword_operator_logical keyword_operator_logical_python">in</span> (<span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>VeryCD<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Twitter<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Last.fm<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Douban<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>theFlashBlog<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>,<span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Latest Macromedia News<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>,<br /> <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Delicious<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Google Reader<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Flickr<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, ):<br /> <span class="meta meta_function-call meta_function-call_python">g.add_node<span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_begin punctuation_definition_arguments_begin_python">(</span><span class="meta meta_function-call meta_function-call_arguments meta_function-call_arguments_python">service, <span class="variable variable_parameter variable_parameter_function variable_parameter_function_python">radius</span><span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_python">=</span><span class="constant constant_numeric constant_numeric_integer constant_numeric_integer_decimal constant_numeric_integer_decimal_python">5</span></span><span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_end punctuation_definition_arguments_end_python">)</span></span><br /><br /><span class="comment comment_line comment_line_number-sign comment_line_number-sign_python"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_python">#</span> connect services with FriendFeed<br /></span><span class="keyword keyword_control keyword_control_flow keyword_control_flow_python">for</span> service <span class="keyword keyword_operator keyword_operator_logical keyword_operator_logical_python">in</span> (<span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Twitter<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Last.fm<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Delicious<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Google Reader<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>Flickr<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>,<span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>LinkedIn<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>):<br /> <span class="meta meta_function-call meta_function-call_python">g.add_edge<span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_begin punctuation_definition_arguments_begin_python">(</span><span class="meta meta_function-call meta_function-call_arguments meta_function-call_arguments_python">service, <span class="string string_quoted string_quoted_single string_quoted_single_single-line string_quoted_single_single-line_python"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_python">'</span>FriendFeed<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_python">'</span></span>, <span class="variable variable_parameter variable_parameter_function variable_parameter_function_python">length</span><span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_python">=</span><span class="meta meta_function-call meta_function-call_python">uniform<span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_begin punctuation_definition_arguments_begin_python">(</span><span class="meta meta_function-call meta_function-call_arguments meta_function-call_arguments_python"><span class="constant constant_numeric constant_numeric_integer constant_numeric_integer_decimal constant_numeric_integer_decimal_python">50</span>,<span class="constant constant_numeric constant_numeric_integer constant_numeric_integer_decimal constant_numeric_integer_decimal_python">100</span></span><span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_end punctuation_definition_arguments_end_python">)</span></span></span><span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_end punctuation_definition_arguments_end_python">)</span></span><br /><br />g.styles.default.edge <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_python">=</span> curly_edge<br /><span class="meta meta_function-call meta_function-call_python">g.solve<span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_begin punctuation_definition_arguments_begin_python">(</span><span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_end punctuation_definition_arguments_end_python">)</span></span><br /><span class="meta meta_function-call meta_function-call_python">g.draw<span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_begin punctuation_definition_arguments_begin_python">(</span><span class="punctuation punctuation_definition punctuation_definition_arguments punctuation_definition_arguments_end punctuation_definition_arguments_end_python">)</span></span></span></pre><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-7355926431729021328?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-49078757753517514272008-11-19T23:28:00.008+08:002009-02-11T11:37:36.674+08:00Photo Booth AIR 更新<a href="http://www.stopdesign.cn/air/booth/" title="photo booth"><img style="cursor:pointer; cursor:hand;width: 270px; height: 61px;" src="http://www.stopdesign.cn/uploaded_images/Picture-5-705951.png" border="0" alt="" /></a><br />导出成功时加入了 <a href="http://www.mikechambers.com/blog/2008/11/13/growl-support-for-adobe-air-applications/#more-1604">Growl</a> 的提示。由于命名空间会跟 mx.core 包里 Application 起冲突,Growl 的应用程序窗口只能显式地定义为:a = new com.adobe.growl.Application();<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-4907875775351751427?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-69233986114035425292008-11-11T00:40:00.004+08:002008-11-11T00:46:19.830+08:00photo booth air<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stopdesign.cn/air/booth/"><img style="cursor:pointer; cursor:hand;width: 400px; height: 295px;" src="http://www.stopdesign.cn/uploaded_images/Picture-3-765921.jpg" border="0" alt="" /></a><br /><a href="http://www.stopdesign.cn/air/booth/">http://www.stopdesign.cn/air/booth/</a><br />把 photo booth port 到 AIR 上,相比 mac 自带的 photo booth 当然简陋很多…点击生成的照片在桌面,生成成功暂时没有提示。<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-6923398611403542529?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-72677995348916348632008-11-10T21:23:00.006+08:002008-11-10T22:03:18.869+08:00分享我在用的textmate bundles<a href="http://tmbundle.googlecode.com/files/frontend.zip">frontend.zip</a> 主要来自<a href="http://minimaldesign.net/">minimaldesign.net</a>,我增加了一些常用的东西,比如 reset CSS, toggle display, $(dollar), addEvent 等,使用时,如输入 dollar 再 tab 就会出来 getElementById 的替代函数 $()。更多可以通过 bundle editor 看到。(这些东西太常用了,<acronym title="don't repeat yourself">DRY</acronym>)。具体使用效果可以参考这个<a href="http://minimaldesign.net/uploads/screencasts/html_css_textmate_bundles.mov">视频</a>。<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-7267799534891634863?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-12370642460683956162008-11-06T22:31:00.003+08:002008-11-06T22:45:38.113+08:00iphone的短信界面<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stopdesign.cn/ui/iphone/"><img style="cursor:pointer; cursor:hand;width: 538px; height: 293px;" src="http://www.stopdesign.cn/uploaded_images/Picture-1-725174.png" border="0" alt="" /></a><br />发现原来 Adium 的聊天窗口<a href="http://www.adiumxtras.com/index.php?a=xtras&xtra_id=5760">界面</a>是用 HTML+CSS 写的,我把其中的内容拿出来做了个<a href="http://www.stopdesign.cn/ui/iphone/">演示</a>,由于 CSS 中没有类似 flash 9-slice 的概念,这种糖果条的设计就要依赖许多额外的标签,许多 Adium 的主题都是这样处理的。<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-1237064246068395616?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-68885796665602019552008-10-29T23:02:00.006+08:002008-11-05T13:57:44.861+08:00safari插件如果经常使用 safari 会发现一些不友好的地方,比如每个标签页旁边的关闭按钮,不小心就会点到,而又不能打开刚关闭的标签;不能随时把窗口最大化(不是全屏);标签旁边没有所访问网站的 favicon;进阶点不支持鼠标手势等等。虽然换 firefox 一些问题就可以得到解决,不过 firefox 作为浏览器始终容易变得臃肿(特别在同时开许多标签页、装许多扩展的情况下),更适合当开发工具。<br />还好,safari 的这些小问题是<a href="http://d.hatena.ne.jp/tanemori/20081029/SafariPlugins">可以解决</a>的。<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-6888579666560201955?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-64583294116049345542008-09-26T01:05:00.006+08:002008-11-24T20:45:58.808+08:00第一个python程序<div class="hlcode"> <div class="syntax"><pre><span class="c"># search IMDB TOP 250 in VeryCD</span> <br /><span class="c"># Author: chenqian</span> <br /><span class="c"># URL: www.stopdesign.cn</span> <br /> <br /><span class="kn">import</span> <span class="nn">urllib2</span> <br /><span class="kn">from</span> <span class="nn">BeautifulSoup</span> <span class="kn">import</span> <span class="n">BeautifulSoup</span> <br /> <br /><span class="n">page</span> <span class="o">=</span> <span class="n">urllib2</span><span class="o">.</span><span class="n">urlopen</span><span class="p">(</span><span class="s">"http://www.imdb.com/chart/top"</span><span class="p">)</span> <br /><span class="n">soup</span> <span class="o">=</span> <span class="n">BeautifulSoup</span><span class="p">(</span><span class="n">page</span><span class="o">.</span><span class="n">read</span><span class="p">())</span> <br /><span class="n">div</span><span class="o">=</span><span class="n">soup</span><span class="p">(</span><span class="s">"table"</span><span class="p">)[</span><span class="mf">11</span><span class="p">]</span> <br /><span class="n">vcurl</span><span class="o">=</span><span class="s">''</span> <br /><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">div</span><span class="p">:</span> <br /> <span class="n">movies</span> <span class="o">=</span> <span class="n">i</span><span class="o">.</span><span class="n">contents</span><span class="p">[</span><span class="mf">2</span><span class="p">]</span><span class="o">.</span><span class="n">contents</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span><span class="o">.</span><span class="n">contents</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span><span class="o">.</span><span class="n">contents</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span> <br /> <span class="c">#print movies </span> <br /> <span class="n">vcurl</span><span class="o">+=</span><span class="s">"<a href='http://www.verycd.com/search/folders/"</span><span class="o">+</span><span class="n">movies</span><span class="o">+</span><span class="s">"'>"</span><span class="o">+</span><span class="n">movies</span><span class="o">+</span><span class="s">"</a><br /></span><span class="se">\n</span><span class="s">"</span> <br /> <span class="c"># age print i.contents[2].contents[0].contents[1]</span> <br /> <br /><span class="n">filename</span> <span class="o">=</span> <span class="s">"top250.html"</span> <br /><span class="nb">file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s">'w'</span><span class="p">)</span> <br /><span class="nb">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">vcurl</span><span class="p">)</span> <br /><span class="nb">file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> </pre></div> <br /></div> 用到了beautiful soup,结果在:<a href="http://www.stopdesign.cn/file/top250.html">top250.html</a><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-6458329411604934554?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-28810504099490762282008-09-23T22:47:00.006+08:002008-09-23T23:25:06.412+08:00一些有用的快捷键在终端中:<blockquote>CTRL + A — 移动到行首<br /> CTRL + E — 移动到行末<br /> CTRL + U — 清除全行<br /> CTRL + B — 向后移动一字符<br /> CTRL + F — 向前移动一字符<br /> CTRL + H — 删除一字符,和delete一样<br /> CTRL + W — 删除最后输入的单词<br /> CTRL + C — 撤销运行中命令<br /> CTRL + D — 退出当前会话</blockquote>之前还老问<a href="http://www.nimab.org/">KFF</a>怎么移动到行首,被告知可以 fn+shift+左/右,今天看到<a href="http://nefariousdesigns.co.uk/archive/2008/09/the-joy-of-unix/">更快捷的方式</a>,原来 CTRL+C 是有一系列。UNIX 真的很有趣,时不时地 man 会发现许多神奇的东西,包括有时 man man 本身。而当你发现一个东西好用之后,就越发想用它来做更多事情,极致就是<a href="http://blog.youxu.info/2008/09/16/cli/">完全用键盘工作</a>了。<br />另外:<br />fn+上/下/左/右—page up/page down/home/end<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-2881050409949076228?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-32669259844981023702008-09-16T22:26:00.006+08:002008-09-16T22:56:05.589+08:00一款新出的可用性测试软件<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.silverbackapp.com/" title="sliverback"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px;" src="http://silverback.s3.amazonaws.com/images/gorilla.png" border="0" alt="sliverback" /></a>来自 clearleft 新推出的 <a href="http://www.silverbackapp.com/" title="silverback">silverback</a>,除了录制用户的操作,同时会在屏幕中显示用户使用过程的录像,跟我们在一般的用户测试录像中看到的一样。<br />优点:简洁,捕捉鼠标、键盘操作;<br />缺点:Mac-only,用户录像窗口不能设置大小,不能针对某个窗口录制,只能导出mov格式。<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-3266925984498102370?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com1tag:blogger.com,1999:blog-4104379176786087353.post-21693313936147491802008-09-14T15:23:00.005+08:002008-09-14T15:31:19.796+08:00网站需要在所有的浏览器中看起来都一模一样吗?<a href="http://dowebsitesneedtolookexactlythesameineverybrowser.com/" title="dowebsitesneedtolookexactlythesameineverybrowser"> do websites need to look exactly the same in every browser? </a><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-2169331393614749180?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com3tag:blogger.com,1999:blog-4104379176786087353.post-5715539207704526692008-09-10T01:11:00.003+08:002008-09-10T01:14:33.607+08:00一篇很长的演讲稿<a href="http://www.cooper.com/journal/agile2008/"><img src="http://www.stopdesign.cn/uploaded_images/Picture-3-710552-710674.png" border="0" alt="" /></a><br /><a href="http://www.cooper.com/journal/agile2008/" target="_blank">http://www.cooper.com/journal/agile2008/</a><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-571553920770452669?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-13594795802536343162008-09-01T23:09:00.003+08:002008-09-01T23:22:45.114+08:00收到书了收到了<a href="http://www.blueidea.com/articleimg/game/flash/2008/12.html">蓝色理想</a>寄过来的 flex 书,书已是伤痕累累…<br />代码部分:<br /><div class="syntax"><pre><span class="k">import</span> <span class="nn">flash.filters.BitmapFilter</span><span class="o">;</span><br /><span class="k">import</span> <span class="nn">flash.filters.BitmapFilterQuality</span><span class="o">;</span><br /><span class="k">import</span> <span class="nn">flash.filters.BitmapFilterType</span><span class="o">;</span><br /><span class="k">import</span> <span class="nn">flash.filters.GradientBevelFilter</span><span class="o">;</span><br /><span class="k">import</span> <span class="nn">flash.text.TextField</span><span class="o">;</span><br /><span class="k">import</span> <span class="nn">flash.text.TextFieldType</span><span class="o">;</span><br /><span class="k">import</span> <span class="nn">flash.display.Sprite</span><span class="o">;</span><br /><span class="n">stage</span><span class="o">.</span><span class="na">scaleMode</span> <span class="o">=</span> <span class="n">StageScaleMode</span><span class="o">.</span><span class="na">NO_SCALE</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">url</span><span class="p">:</span><span class="kt">String</span> <span class="o">=</span> <span class="s2">"sound.mp3"</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">request</span><span class="p">:</span><span class="kt">URLRequest</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">URLRequest</span><span class="o">(</span><span class="n">url</span><span class="o">);</span><br /><span class="kd">var</span> <span class="n">s</span><span class="p">:</span><span class="kt">Sound</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">Sound</span><span class="o">();</span><br /><span class="n">s</span><span class="o">.</span><span class="na">addEventListener</span><span class="o">(</span><span class="n">ProgressEvent</span><span class="o">.</span><span class="na">PROGRESS</span><span class="o">,</span> <span class="n">progressHandler</span><span class="o">);</span><br /><span class="n">s</span><span class="o">.</span><span class="na">addEventListener</span><span class="o">(</span><span class="n">Event</span><span class="o">.</span><span class="na">COMPLETE</span><span class="o">,</span> <span class="n">completeHandler</span><span class="o">);</span><br /><span class="n">s</span><span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="n">request</span><span class="o">);</span><br /><span class="kd">var</span> <span class="n">song</span><span class="p">:</span><span class="kt">SoundChannel</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="na">play</span><span class="o">();</span><br /><span class="n">song</span><span class="o">.</span><span class="na">addEventListener</span><span class="o">(</span><span class="n">Event</span><span class="o">.</span><span class="na">SOUND_COMPLETE</span><span class="o">,</span> <span class="n">soundCompleteHandler</span><span class="o">);</span><br /><span class="kd">var</span> <span class="n">ba</span><span class="p">:</span><span class="kt">ByteArray</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">ByteArray</span><span class="o">();</span><br /><span class="kd">var</span> <span class="n">gr</span><span class="p">:</span><span class="kt">Sprite</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">Sprite</span><span class="o">();</span><br /><span class="n">gr</span><span class="o">.</span><span class="na">x</span> <span class="o">=</span> <span class="mi">20</span><span class="o">;</span><br /><span class="n">gr</span><span class="o">.</span><span class="na">y</span> <span class="o">=</span> <span class="mi">200</span><span class="o">;</span><br /><span class="n">addChild</span><span class="o">(</span><span class="n">gr</span><span class="o">);</span><br /><span class="cm">/*</span><br /><span class="cm"> var bgColor:uint = 0xCCCCCC;</span><br /><span class="cm"> var size:uint = 80;</span><br /><span class="cm"> var offset:uint = 50;</span><br /><span class="cm"> var distance:Number = 5;</span><br /><span class="cm"> var angleInDegrees:Number = 225; // opposite 45 degrees</span><br /><span class="cm"> var colors:Array = [0xFF0000, 0xFFFFFF, 0x000000];</span><br /><span class="cm"> var alphas:Array = [1, 0, 1];</span><br /><span class="cm"> var ratios:Array = [0, 128, 255];</span><br /><span class="cm"> var blurX:Number = 8;</span><br /><span class="cm"> var blurY:Number = 8;</span><br /><span class="cm"> var strength:Number = 2;</span><br /><span class="cm"> var quality:Number = BitmapFilterQuality.HIGH</span><br /><span class="cm"> var type:String = BitmapFilterType.INNER;</span><br /><span class="cm"> var knockout:Boolean = true;</span><br /><span class="cm"> var filter:BitmapFilter=new GradientBevelFilter(distance,</span><br /><span class="cm"> angleInDegrees,</span><br /><span class="cm"> colors,</span><br /><span class="cm"> alphas,</span><br /><span class="cm"> ratios,</span><br /><span class="cm"> blurX,</span><br /><span class="cm"> blurY,</span><br /><span class="cm"> strength,</span><br /><span class="cm"> quality,</span><br /><span class="cm"> type,</span><br /><span class="cm"> knockout);</span><br /><span class="cm">*/</span><br /><span class="kd">var</span> <span class="n">bgColor</span><span class="p">:</span><span class="kt">uint</span> <span class="o">=</span> <span class="mi">0</span><span class="n">xCCCCCC</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">size</span><span class="p">:</span><span class="kt">uint</span> <span class="o">=</span> <span class="mi">80</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">offset</span><span class="p">:</span><span class="kt">uint</span> <span class="o">=</span> <span class="mi">50</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">distance</span><span class="p">:</span><span class="kt">Number</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">angleInDegrees</span><span class="p">:</span><span class="kt">Number</span> <span class="o">=</span> <span class="mi">45</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">colors</span><span class="p">:</span><span class="kt">Array</span> <span class="o">=</span> <span class="o">[</span><span class="mi">0</span><span class="n">xFFFFFF</span><span class="o">,</span> <span class="mi">0</span><span class="n">xFF0000</span><span class="o">,</span> <span class="mi">0</span><span class="n">xFFFF00</span><span class="o">,</span> <span class="mh">0x00</span><span class="n">CCFF</span><span class="o">];</span><br /><span class="kd">var</span> <span class="n">alphas</span><span class="p">:</span><span class="kt">Array</span> <span class="o">=</span> <span class="o">[</span><span class="mi">0</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="mi">1</span><span class="o">];</span><br /><span class="kd">var</span> <span class="n">ratios</span><span class="p">:</span><span class="kt">Array</span> <span class="o">=</span> <span class="o">[</span><span class="mi">0</span><span class="o">,</span> <span class="mi">63</span><span class="o">,</span> <span class="mi">126</span><span class="o">,</span> <span class="mi">255</span><span class="o">];</span><br /><span class="kd">var</span> <span class="n">blurX</span><span class="p">:</span><span class="kt">Number</span> <span class="o">=</span> <span class="mi">50</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">blurY</span><span class="p">:</span><span class="kt">Number</span> <span class="o">=</span> <span class="mi">50</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">strength</span><span class="p">:</span><span class="kt">Number</span> <span class="o">=</span> <span class="mf">2.5</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">quality</span><span class="p">:</span><span class="kt">Number</span> <span class="o">=</span> <span class="n">BitmapFilterQuality</span><span class="o">.</span><span class="na">HIGH</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">type</span><span class="p">:</span><span class="kt">String</span> <span class="o">=</span> <span class="n">BitmapFilterType</span><span class="o">.</span><span class="na">OUTER</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">knockout</span><span class="p">:</span><span class="kt">Boolean</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span><br /><span class="kd">var</span> <span class="n">filter</span><span class="p">:</span><span class="kt">BitmapFilter</span><span class="o">=</span><span class="k">new</span> <span class="kt">GradientGlowFilter</span><span class="o">(</span><span class="n">distance</span><span class="o">,</span><br /> <span class="n">angleInDegrees</span><span class="o">,</span><br /> <span class="n">colors</span><span class="o">,</span><br /> <span class="n">alphas</span><span class="o">,</span><br /> <span class="n">ratios</span><span class="o">,</span><br /> <span class="n">blurX</span><span class="o">,</span><br /> <span class="n">blurY</span><span class="o">,</span><br /> <span class="n">strength</span><span class="o">,</span><br /> <span class="n">quality</span><span class="o">,</span><br /> <span class="n">type</span><span class="o">,</span><br /> <span class="n">knockout</span><span class="o">);</span><br /><br /><span class="kd">var</span> <span class="n">farr</span><span class="p">:</span><span class="kt">Array</span><span class="o">=</span><span class="k">new</span> <span class="kt">Array</span><span class="o">();</span><br /><span class="n">farr</span><span class="o">.</span><span class="na">push</span><span class="o">(</span><span class="n">filter</span><span class="o">);</span><br /><span class="kd">var</span> <span class="n">time</span><span class="p">:</span><span class="kt">Timer</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">Timer</span><span class="o">(</span><span class="mi">50</span><span class="o">);</span><br /><span class="n">time</span><span class="o">.</span><span class="na">addEventListener</span><span class="o">(</span><span class="n">TimerEvent</span><span class="o">.</span><span class="na">TIMER</span><span class="o">,</span> <span class="n">timerHandler</span><span class="o">);</span><br /><span class="n">time</span><span class="o">.</span><span class="na">start</span><span class="o">();</span><br /><span class="kd">function </span><span class="nf">createTextField</span><span class="o">(</span><span class="n">x</span><span class="o">:</span><span class="kt">Number</span><span class="o">,</span><span class="err"> </span><span class="n">y</span><span class="o">:</span><span class="kt">Number</span><span class="o">,</span><span class="err"> </span><span class="n">width</span><span class="o">:</span><span class="kt">Number</span><span class="o">,</span><span class="err"> </span><span class="n">height</span><span class="o">:</span><span class="kt">Number</span><span class="o">):</span><span class="kt">TextField</span> <span class="o">{</span><br /> <span class="kd">var</span> <span class="n">result</span><span class="p">:</span><span class="kt">TextField</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">TextField</span><span class="o">();</span><br /> <span class="kd">var</span> <span class="n">format</span><span class="p">:</span><span class="kt">TextFormat</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">TextFormat</span><span class="o">();</span><br /> <span class="n">format</span><span class="o">.</span><span class="na">font</span> <span class="o">=</span> <span class="s2">"Verdana"</span><span class="o">;</span><br /> <span class="n">format</span><span class="o">.</span><span class="na">color</span> <span class="o">=</span> <span class="mi">0</span><span class="n">xFF0000</span><span class="o">;</span><br /> <span class="n">format</span><span class="o">.</span><span class="na">size</span> <span class="o">=</span> <span class="mi">10</span><span class="o">;</span><br /> <span class="n">result</span><span class="o">.</span><span class="na">defaultTextFormat</span> <span class="o">=</span> <span class="n">format</span><span class="o">;</span><br /> <span class="n">result</span><span class="o">.</span><span class="na">x</span> <span class="o">=</span> <span class="n">x</span><span class="o">;</span><br /> <span class="n">result</span><span class="o">.</span><span class="na">y</span> <span class="o">=</span> <span class="n">y</span><span class="o">;</span><br /> <span class="n">result</span><span class="o">.</span><span class="na">width</span> <span class="o">=</span> <span class="n">width</span><span class="o">;</span><br /> <span class="n">result</span><span class="o">.</span><span class="na">height</span> <span class="o">=</span> <span class="n">height</span><span class="o">;</span><br /> <span class="n">addChild</span><span class="o">(</span><span class="n">result</span><span class="o">);</span><br /> <span class="k">return</span> <span class="n">result</span><span class="o">;</span><br /><span class="o">}</span><br /><span class="kd">var</span> <span class="n">loading</span><span class="p">:</span><span class="kt">TextField</span> <span class="o">=</span> <span class="n">createTextField</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span> <span class="mi">20</span><span class="o">,</span> <span class="mi">200</span><span class="o">,</span> <span class="mi">20</span><span class="o">);</span><br /><span class="kd">var</span> <span class="n">loadstr</span><span class="p">:</span><span class="kt">String</span><span class="o">;</span><br /><span class="kd">function </span><span class="nf">progressHandler</span><span class="o">(</span><span class="n">event</span><span class="o">:</span><span class="kt">ProgressEvent</span><span class="o">):</span><span class="kt">void</span> <span class="o">{</span><br /> <span class="n">loadstr</span><span class="o">=</span><span class="n">String</span><span class="o">(</span><span class="n">Math</span><span class="o">.</span><span class="na">floor</span><span class="o">((</span><span class="n">event</span><span class="o">.</span><span class="na">bytesLoaded</span><span class="o">/</span><span class="n">event</span><span class="o">.</span><span class="na">bytesTotal</span><span class="o">)*</span><span class="mi">100</span><span class="o">));</span><br /> <span class="n">loading</span><span class="o">.</span><span class="na">text</span><span class="o">=</span><span class="n">loadstr</span><span class="o">;</span><br /> <span class="nf">trace</span><span class="o">(</span><span class="n">loadstr</span><span class="o">);</span><br /> <span class="c1">//trace(" bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);</span><br /><span class="o">}</span><br /><span class="kd">function </span><span class="nf">completeHandler</span><span class="o">(</span><span class="n">event</span><span class="o">:</span><span class="kt">Event</span><span class="o">):</span><span class="kt">void</span> <span class="o">{</span><br /> <span class="c1">//loading.visible=false;</span><br /> <span class="c1">//s.removeEventListener(ProgressEvent.PROGRESS, progressHandler);</span><br /> <span class="n">event</span><span class="o">.</span><span class="na">target</span><span class="o">.</span><span class="na">play</span><span class="o">();</span><br /><span class="o">}</span><br /><span class="kd">function </span><span class="nf">soundCompleteHandler</span><span class="o">(</span><span class="n">event</span><span class="o">:</span><span class="kt">Event</span><span class="o">):</span><span class="kt">void</span> <span class="o">{</span><br /> <span class="n">time</span><span class="o">.</span><span class="na">stop</span><span class="o">();</span><br /><span class="o">}</span><br /><span class="kd">function </span><span class="nf">timerHandler</span><span class="o">(</span><span class="n">event</span><span class="o">:</span><span class="kt">TimerEvent</span><span class="o">):</span><span class="kt">void</span> <span class="o">{</span><br /> <span class="n">SoundMixer</span><span class="o">.</span><span class="na">computeSpectrum</span><span class="o">(</span><span class="n">ba</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span><br /> <span class="kd">var</span> <span class="n">i</span><span class="p">:</span><span class="kt">int</span><span class="o">;</span><br /> <span class="n">gr</span><span class="o">.</span><span class="na">graphics</span><span class="o">.</span><span class="na">clear</span><span class="o">();</span><br /> <span class="n">gr</span><span class="o">.</span><span class="na">graphics</span><span class="o">.</span><span class="na">lineStyle</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span> <span class="mi">0</span><span class="n">xFFFFFF</span><span class="o">);</span><br /> <span class="n">gr</span><span class="o">.</span><span class="na">graphics</span><span class="o">.</span><span class="na">beginFill</span><span class="o">(</span><span class="mi">0</span><span class="n">xFFFFFF</span><span class="o">);</span><br /> <span class="n">gr</span><span class="o">.</span><span class="na">graphics</span><span class="o">.</span><span class="na">moveTo</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span> <span class="mi">0</span><span class="o">);</span><br /> <span class="kd">var</span> <span class="n">w</span><span class="p">:</span><span class="kt">uint</span> <span class="o">=</span> <span class="mi">2</span><span class="o">;</span><br /> <span class="k">for</span> <span class="o">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o"><</span><span class="mi">512</span><span class="o">;</span> <span class="n">i</span><span class="o">+=</span><span class="n">w</span><span class="o">)</span> <span class="o">{</span><br /> <span class="kd">var</span> <span class="n">t</span><span class="p">:</span><span class="kt">Number</span> <span class="o">=</span> <span class="n">ba</span><span class="o">.</span><span class="na">readFloat</span><span class="o">();</span><br /> <span class="kd">var</span> <span class="n">n</span><span class="p">:</span><span class="kt">Number</span> <span class="o">=</span> <span class="o">(</span><span class="n">t</span> <span class="o">*</span> <span class="mi">100</span><span class="o">);</span><br /> <span class="n">gr</span><span class="o">.</span><span class="na">graphics</span><span class="o">.</span><span class="na">drawRect</span><span class="o">(</span><span class="n">i</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="n">w</span><span class="o">,</span> <span class="o">-</span><span class="n">n</span><span class="o">);</span><br /> <span class="n">gr</span><span class="o">.</span><span class="na">filters</span><span class="o">=</span><span class="n">farr</span><span class="o">;</span><br /> <span class="o">}</span><br /><span class="o">}</span><br /></pre></div><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-1359479580253634316?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-22388386310663748322008-08-30T21:46:00.011+08:002008-09-01T23:54:16.664+08:00ubiquity<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stopdesign.cn/uploaded_images/ubiquity-740668.png"><img style="cursor:pointer; cursor:hand;" src="http://www.stopdesign.cn/uploaded_images/ubiquity-740665.png" border="0" alt="" /></a><br /><br /><a href="https://wiki.mozilla.org/Labs/Ubiquity/Ubiquity_0.1_User_Tutorial">ubiquity</a> 是 <a href="http://www.azarask.in/blog/">Aza Raskin</a> (Mac 之父的儿子) 新推出的一个 firefox 插件,像是基于浏览器的 quicksilver 。现在要在浏览器中完成一些任务不得不在几个窗口之间切换,比如想在邮件中插入一张地图,就得先打开一个窗口搜索地名,再切换到邮箱中贴上图或者地址,而有了 ubiquity ,这些操作都可以在一个窗口内轻松地实现。许多 web 服务都提供了 API,一般都可以用 javascript 方便地调用,比如花几分钟依样画葫芦地写一个更新饭否的功能。也可以用它来做 js 调试器,未释出前的版本就自带有一个。<br /><div class="syntax"><pre><br /><span class="kd">const</span> <span class="nx">fanfou_STATUS_MAXLEN</span> <span class="o">=</span> <span class="mi">140</span><span class="o">;</span><br /><span class="nx">CmdUtils</span><span class="p">.</span><span class="nx">CreateCommand</span><span class="p">({</span><br /> <span class="nx">name</span><span class="o">:</span> <span class="s2">"fanfou"</span><span class="o">,</span><br /> <span class="nx">takes</span><span class="o">:</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="nx">noun_arb_text</span><span class="p">}</span><span class="o">,</span><br /> <span class="nx">homepage</span><span class="o">:</span> <span class="s2">"http://www.stopdesign.cn/ubiquity/"</span><span class="o">,</span><br /> <span class="nx">author</span><span class="o">:</span> <span class="p">{</span><span class="nx">name</span><span class="o">:</span> <span class="s2">"chen qian"</span><span class="o">,</span> <span class="nx">homepage</span><span class="o">:</span> <span class="s2">"http://stopdesign.cn/"</span><span class="p">}</span><span class="o">,</span><br /> <span class="nx">license</span><span class="o">:</span> <span class="s2">"MPL"</span><span class="o">,</span><br /> <span class="nx">preview</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">previewBlock</span><span class="o">,</span> <span class="nx">statusText</span><span class="p">)</span> <span class="p">{</span><br /> <span class="kd">var</span> <span class="nx">previewTemplate</span> <span class="o">=</span> <span class="s2">"更新你的饭否: <br/>"</span> <span class="o">+</span> <br /> <span class="s2">"<b>${status}</b><br /><br />"</span> <span class="o">+</span> <br /> <span class="s2">"Characters remaining: <b>${chars}</b>"</span><span class="o">;</span><br /><br /> <span class="kd">var</span> <span class="nx">truncateTemplate</span> <span class="o">=</span> <span class="s2">"<br />超出的 <b>${truncate}</b> "</span> <span class="o">+</span> <br /> <span class="s2">"会被截断!"</span><span class="o">;</span><br /> <span class="kd">var</span> <span class="nx">previewData</span> <span class="o">=</span> <span class="p">{</span><br /> <span class="nx">status</span><span class="o">:</span> <span class="nx">statusText</span><span class="p">.</span><span class="nx">text</span><span class="o">,</span><br /> <span class="nx">chars</span><span class="o">:</span> <span class="nx">fanfou_STATUS_MAXLEN</span> <span class="o">-</span> <span class="nx">statusText</span><span class="p">.</span><span class="nx">text</span><span class="p">.</span><span class="nx">length</span><br /> <span class="p">};</span><br /> <span class="kd">var</span> <span class="nx">previewHTML</span> <span class="o">=</span> <span class="nx">CmdUtils</span><span class="p">.</span><span class="nx">renderTemplate</span><span class="p">(</span><span class="nx">previewTemplate</span><span class="o">,</span><br /> <span class="nx">previewData</span><span class="p">);</span><br /> <span class="k">if</span><span class="p">(</span><span class="nx">previewData</span><span class="p">.</span><span class="nx">chars</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span><br /> <span class="kd">var</span> <span class="nx">truncateData</span> <span class="o">=</span> <span class="p">{</span><br /> <span class="nx">truncate</span><span class="o">:</span> <span class="mi">0</span> <span class="o">-</span> <span class="nx">previewData</span><span class="p">.</span><span class="nx">chars</span><br /> <span class="p">};</span><br /> <span class="nx">previewHTML</span> <span class="o">+=</span> <span class="nx">CmdUtils</span><span class="p">.</span><span class="nx">renderTemplate</span><span class="p">(</span><span class="nx">truncateTemplate</span><span class="o">,</span><br /> <span class="nx">truncateData</span><span class="p">);</span><br /> <span class="p">}</span><br /> <span class="nx">previewBlock</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">previewHTML</span><span class="o">;</span><br /> <span class="p">}</span><span class="o">,</span><br /> <span class="nx">execute</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">statusText</span><span class="p">)</span> <span class="p">{</span><br /> <span class="k">if</span><span class="p">(</span><span class="nx">statusText</span><span class="p">.</span><span class="nx">text</span><span class="p">.</span><span class="nx">length</span> <span class="o"><</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span><br /> <span class="nx">displayMessage</span><span class="p">(</span><span class="s2">"fanfou requires a status to be entered"</span><span class="p">);</span><br /> <span class="k">return</span><span class="o">;</span><br /> <span class="p">}</span><br /> <span class="kd">var</span> <span class="nx">updateUrl</span> <span class="o">=</span> <span class="s2">"http://api.fanfou.com/statuses/update.json"</span><span class="o">;</span><br /> <span class="kd">var</span> <span class="nx">updateParams</span> <span class="o">=</span> <span class="p">{</span><br /> <span class="nx">source</span><span class="o">:</span> <span class="s2">"ubiquity"</span><span class="o">,</span><br /> <span class="nx">status</span><span class="o">:</span> <span class="nx">statusText</span><span class="p">.</span><span class="nx">text</span><br /> <span class="p">};</span><br /> <span class="nx">jQuery</span><span class="p">.</span><span class="nx">ajax</span><span class="p">({</span><br /> <span class="nx">type</span><span class="o">:</span> <span class="s2">"POST"</span><span class="o">,</span><br /> <span class="nx">url</span><span class="o">:</span> <span class="nx">updateUrl</span><span class="o">,</span><br /> <span class="nx">data</span><span class="o">:</span> <span class="nx">updateParams</span><span class="o">,</span><br /> <span class="nx">dataType</span><span class="o">:</span> <span class="s2">"json"</span><span class="o">,</span><br /> <span class="nx">error</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span><br /> <span class="nx">displayMessage</span><span class="p">(</span><span class="s2">"出现错误,更新失败"</span><span class="p">);</span><br /> <span class="p">}</span><span class="o">,</span><br /> <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span><br /> <span class="nx">displayMessage</span><span class="p">(</span><span class="s2">"饭否更新成功"</span><span class="p">);</span><br /> <span class="p">}</span><br /> <span class="p">});</span><br /> <span class="p">}</span><br /><span class="p">});</span><br /></pre></div><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-2238838631066374832?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-91927339039335502472008-08-15T22:57:00.004+08:002008-08-15T23:47:23.926+08:00发点牢骚今天打开 greader,看到一堆在<a href="http://www.gskinner.com/blog/archives/2008/08/javascript_stal.html">评论</a> ECMAScript 4 <a href="http://ejohn.org/blog/ecmascript-harmony/">被停滞</a>的文章,刚好最近一直在做 javascript 方面的工作,相当大一部分时间都是在解决跨浏览器之间的问题,代码中也充斥着判断,如果是 IE 就怎么样,如果不是又怎么样。一个合理的情况这些判断是不应该存在的,包括 <a href="http://www.quirksmode.org/">quirksmode.org</a> 这样的网站都不应该存在(现实情况是 google 会经常把你带到这里去)。这使开发人员不能集中注意于任务,而要分心在实现手段上了。相反,flash 开发中基本都是一次开发,到处分发。特别是基于 ECMAScript 4 的 actionscript3,引入了诸如 namespaces、packages 等概念,让人想着以后 javascript 也能这样写就爽了,可是,现在就这样泡汤了。不过还好 actionscript 会继续按照开发社区的呼声<a href="http://blogs.adobe.com/open/2008/08/blog_entry_dated_81408_715_pm.html">走下去</a>,支持那些合理的东西,毕竟 flash player 独立些,不用屈从于厂商的意愿,或者说它本身就是一厂商。<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-9192733903933550247?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-44890219516028503072008-08-03T02:23:00.005+08:002008-08-03T11:04:23.394+08:00About “Fleximagically Searchable”I'm interested in <a href="http://blog.digitalbackcountry.com/?p=1478">Ryan 's</a> flex SEO contest, and here is my simple <a href="http://www.stopdesign.cn/flex/" title="fleximagically searchable">flex application</a>, the keywords phrase is dynamically generated when you click the tab.<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-4489021951602850307?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-78894017119179298242008-06-04T21:04:00.005+08:002008-06-04T22:00:42.911+08:00How to support gesture in safari<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stopdesign.cn/uploaded_images/gesture-750259.png" rel="lightbox"><img style="cursor:pointer; cursor:hand;" src="http://www.stopdesign.cn/uploaded_images/gesture-750240.png" border="0" width="400px" alt="" /></a><br />There is one useful plugin in firefox called 'all in one gesture', and I use the backward or forward gesture most of the time while surfing online. Unfortunately safari doesn't support this kind of plugins. These days I happen to find a quicksilver plugin--<a href="http://marcusvorwaller.com/blog/archives/2006/02/20/quicksilver-abracadabra-gestures/">abracadabra</a>, which let you do anything quicksilver can do with mouse gesture.<br />If you have installed abracadabra in quicksilver, simply drag these two link(<a href="javascript:history.back();">back</a> , <a href="javascript:history.forward();">forward</a>) to your safari's bookmark bar. Then create the new gesture triggers in quicksilver and locate to safari>bookmarkBar>back(or forward). Now you can custom a gesture which you want the back or forward action to take effect. This is handy and make your safari more friendly.<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-7889401711917929824?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-10894434340718616752008-05-25T00:46:00.004+08:002008-05-25T00:57:13.419+08:00flash版的共饭<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stopdesign.cn/fanfou/map.html"><img style="cursor:pointer; cursor:hand;" src="http://www.stopdesign.cn/uploaded_images/fanmap-716235.png" border="0" alt="" /></a><br />点击图像打开,<br />google map API flash 版出来了,不过暂时只能在 flex 中使用,做了一个简单的演示,读取饭否中最新发布的20条消息,等待改善。<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-1089443434071861675?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com1tag:blogger.com,1999:blog-4104379176786087353.post-76172630649965087592008-04-22T21:25:00.028+08:002008-04-30T18:00:38.118+08:00期待与易用<p style="float:right;margin-left:8px;padding:8px 8px;border:1px solid #CCC;font-style:italic;color:#666;width:180px;line-height:160%;font-size:13px;-moz-border-radius: 5px;-webkit-border-radius: 5px;">当一件东西能够以被期待的方式运行,那它就是易用的。就是这样!这就是关于可用性的一切!像Hillel所说,其它的一切都是解说词。<br /><a href="http://local.joelonsoftware.com/mediawiki/index.php/Chinese_%28Simplified%29#.E6.98.93.E7.94.A8.E7.9A.84.E7.95.8C.E9.9D.A2.EF.BC.8C.E7.AE.80.E5.8D.95.E7.9A.84.E4.B8.80.E6.AD.A5" title="the joel on software" style="padding-left:24px;font-size:12px; text-shadow: black 0 0 1px;">The Joel on software</a></p>看到<a href="http://www.dustindiaz.com/maximize-on-a-mac/">有人在抱怨</a> mac 窗口中左上角绿色按钮最大化的问题,在 windows 中,你点最大化按钮,窗口真的就最大化,可是在 mac 中,窗口会根据包含的内容放大到一定程度,多数情况下并不是真正的最大化,有的认为这是为了<a href="http://forevergeek.com/apple/mac_vs_windows_its_all_about_the_maximize_button.php">方便进行多任务</a>工作,可是我点绿色按钮时都是希望窗口最大化的,这样可以专注于当前的任务。这基本又是一则有关“期待”的问题,事实<a href="http://www.surfchen.org/?p=253">不止一个人</a>有这种期待。许多易用性的问题说到底是期待的问题,当你以 windows 的期待来用 mac 时,可能会觉得:这个东西怎么这么难用?反之亦然。类似的例子还有许多,当你希望用 photoshop 的一些快捷键来操作 GIMP 的,可能有时会想杀人(比如当你想取消选择时在 <acronym title="photoshop">PS</acronym> 中是 ctrl+d,而这在 GIMP 中是复制并新建一份当前文档)。当你以这种观点来审视许多日用品或公共设施时,会发许多易用性问题,比如,当你在按完某个按钮觉得空调应该出来冷风它却出来热风时,当你接上插头灯也亮了出去溜达回来发现电饭锅里的饭却还没有开始煮时,但你对着洗衣机的许多按钮开始琢磨洗这几件衣服到底是该按顺序按哪几个按钮时,当你在某个商店莫名其妙突然脚踩空时……等等许多,说明这些日用品的设计没有解决好你的期待。<br />关于期待还可以引出其它话题,比如人本界面的一个特征:“对新手可用,对专家高效,并且之间的过渡不需要二次培训。” google 的几个产品很好地诠释了这一特征:在你每天使用的 gmail 或 google reader 中输一下"?",就会出来你使用该产品所需要的<a href="http://www.stopdesign.cn/images/gshortcut.png" rel="lightbox">所有快捷键</a>。对于一些人可能完全用不到这些快捷键,用鼠标同样可以完成看文章、写邮件的任务;而对一些人,这些快捷键显著提高了他们看文章、回复邮件的效率。另外一个例子就是 <a href="http://en.wikipedia.org/wiki/Quicksilver_(software)">quicksilver</a>,没有它当然也可以完成许多操作,但是有了它,整个 mac 的操作体验上升了一个层次。<br />人本界面另外一个特征是:所有可以点击的东西都应该做得看起来是可以点击的,比如 youtube 的上传按钮;<br /><p style="padding:4px;border:1px solid #CCC;width:410px;-moz-border-radius: 5px;-webkit-border-radius: 5px;"><a href="http://www.stopdesign.cn/images/youtubeUpload.png" rel="lightbox"><img src="http://www.stopdesign.cn/images/youtube1.png" width="400px" /></a><br /><span style="font-size:11px;font-style:italic">点击图像放大</span><br /></p><br />反过来,那些不可以点击的东西最好不要做得看起来像可以点的,比如“<a href="http://www.bielaiwuyang.com/">别来无恙</a>”的几个标题:<br /><p style="padding:4px;border:1px solid #CCC;width:410px;-moz-border-radius: 5px;-webkit-border-radius: 5px;"><a href="http://www.stopdesign.cn/images/bielai.jpg" rel="lightbox"><img src="http://www.stopdesign.cn/images/bielai1.jpg" width="400px" /></a><br /><span style="font-size:11px;font-style:italic">点击图像放大</span><br /></p><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-7617263064996508759?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com0tag:blogger.com,1999:blog-4104379176786087353.post-4777610114291660862008-04-08T20:33:00.006+08:002008-04-14T13:21:34.667+08:00mac中的flash调试1.下载 flash debug player<br />2.在 "/Library/Application Support/Macromedia" 目录下新建一个 mm.cfg ,包含以下信息:<br /><code>ErrorReportingEnable=1<br />TraceOutputFileEnable=1<br />MaxWarnings=500<br />TraceOutPutFileName=Macintosh HD:Users:{username}:Library:Preferences:Macromedia:Flash Player:Logs:flashlog.txt</code><br />#最后一条为相应目录下的 flashlog.txt ,没有则新建。路径是冒号不是斜杆。<br />3.然后就可以使用 tail -f flashlog.txt <a href="http://www.stopdesign.cn/images/%E5%9B%BE%E7%89%87%204.png" rel="lightbox">trace flash 中的内容</a>了。<br />更新:或者可以使用 <a href="http://projects.tynsoe.org/en/geektool/" title="geek tool">geek tool</a> 直接输出到桌面上。<div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-477761011429166086?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com1tag:blogger.com,1999:blog-4104379176786087353.post-45644740469100504382008-03-31T12:01:00.013+08:002008-04-06T23:55:49.684+08:00一个搜索verycd资源的bookmarklets<a href="javascript:q%20=%20%22%22%20+%20(window.getSelection%20?%20window.getSelection()%20:%20document.getSelection%20?%20document.getSelection()%20:%20document.selection.createRange().text);%20if%20(!q)%20q%20=%20prompt(%22You%20didn't%20select%20any%20text.%20%20Enter%20a%20search%20phrase:%22,%20%22%22);%20if%20(q!=null)%20location=%22http://www.verycd.com/search/folders/%22%20+%20encodeURIComponent(q).replace(/%20/g,%20%22+%22);%20void%200" style="display:block;border:1px solid #5897FF;padding:3px;text-decoration:none;width:60px;text-align:center;margin:0;margin-top:4px;">VeryCD</a>拖动上面的链接到书签工具栏,选中页面中的文字,点击开始搜索,适合在浏览豆瓣类网站时使用。<br /><img src="http://www.stopdesign.cn/images/bookmarklets.png" alt="bookmarklets" /><div class="blogger-post-footer"><img width='1' height='1' src='http://res1.blogblog.com/tracker/4104379176786087353-4564474046910050438?l=www.stopdesign.cn'/></div>sikenoreply@blogger.com3