圣叹

我们面对现实.我们忠于理想
在Flash Builder中有时候修改了某个静态文件后,debug目录下并没有同步更新这个文件,手动复制时报错"Resource is out of sync with the file system",是因为文件系统不同步造成的,解决方法有两个:
(1)选中工程,右键,选择F5(手动刷新);
(2)Window->Preferences->General->Workspace,选中Refresh automatically(设置Flash Builder自动刷新)。
Jul
2
2009
打开cmd,输入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

或:
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1

打开时如果出现“此时不应有doregsvr32.exe”警告,或者重新输入一次,或者用regsvr32 actxprxy.dll 命令,接着依次运行以下命令:
regsvr32 shdocvw.dll regsvr32 oleaut32.dll regsvr32 actxprxy.dll regsvr32 mshtml.dll regsvr32 msjava.dll regsvr32 browseui.dll regsvr32 urlmon.dll

如出现"不是内部或外部命令,也不是可运行或批处理文件", 检查系统变量是否是“%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem”

关于CMD脚本语法:http://bbs.greendown.cn/read.php?tid=36889&uid=68799

保证疗效,百试不爽。
Jul
1
2009
详细的配置过程见:http://labs.adobe.com/technologies/alchemy/

使用Cygwin配置的时候碰到了几处麻烦。首先是路径设置问题,我直接把flex目录下的bin目录copy到了c盘。
其次是编译时报错:

[Compiler] Error #1063: Unable to open file: /cygdrive/c/Users/sascha/Applications/Alchemy/flashlibs/global.abc.
[Compiler] Error #1063: Unable to open file: /cygdrive/c/Users/sascha/Applications/Alchemy/flashlibs/playerglobal.abc.


需要修改alchemy目录里 hacks.pl 文件:
把if ( `uname` = ~ / CYGWIN /) 改为if ( `/ bin / uname` = ~ / CYGWIN /

要注意的是,不要把alchemy安装到cygwin的目录下。
Jun
11
2009
点击在新窗口中浏览此图片
历时2个月,我们的游戏《开心水族箱》终于完成内测并在校内网上线公测。
游戏地址:http://apps.xiaonei.com/fishbowl
简介:这是一个神奇的水族箱,能喂养出会产宝物的鱼儿,还有各种有趣的魔法道具和个性十足的宠物助手帮你养鱼。在这样一个未知而神奇的世界里,你能成为养鱼高手吗?

接下来还有很多开发任务,我们也开始扩张招人,下面的薪资待遇看起来也许不高,但请放心,如果您实力强悍,我们会给您绝对有吸引力的薪酬!

引用

北京双鱼互动招聘美术设计/flash工程师/java_web工程师
双鱼互动是一个专业从事scoial game开发的创业公司.如果你对这个行业有兴趣,欢迎你加入我们和公司一起成长。

我们现在需要如下:

美术设计师(2个)
职位要求:
1.扎实的美术基础,较强的手绘能力,能独立完成人物设定、场景设定和用户界面设计
2.精通Illustrator/Photoshop等常用绘图软件,精通矢量美术设计
3.善于沟通和表达自己,富有激情、创造力和责任心
4.对网页设计、交互设计有一定了解
5.爱玩游戏,喜欢宽松自由的工作气氛
6.有Flash动画设计经验或游戏设计经验者优先

学历要求:不限
薪资待遇:4K-6K

Flash工程师(2个)
职位要求:
1.有过多人合作项目的开发,负责过模块的编写,有较强系统分析能力;
2.精通ActionScript3、0,能用AS3自主开发Flash组件或游戏,熟悉java开发环境更佳;
3.必须拥有良好的编码风格和面向对象的编程思想;
4.熟悉ActionScript3、0和后台Server之间的通讯与交互;
5.熟练使用设计模式开发;
学历要求:不限
薪资待遇:4K-6K

Java web开发工程师 (2个)
职位要求:
1.熟悉Java,有web应用开发经验
2.掌握sql语言,熟悉mysql数据库操作,熟悉linux开发环境
3.熟悉http协议,熟悉相关web server软件
4.有拼搏精神,沟通好,有责任心
5.会python更佳。
学历要求:不限
薪资待遇:4K-6K

上述薪资待遇只是一个大概,能力超强者完全是可以谈更高的薪水的。我们也欢迎有经验的应届毕业生。
如果有兴趣的话,请把你的简历发给我们(美术设计需要相关作品),我们会在1-3个工作日内给你答复。邮箱地址:fishrecruiter@gmail.com

May
27
2009
今天把Flex工程的swf标签换成了swfobject, 调试的时候IE总是弹出阻挡提示。于是,加入了一段简单的HTML注释,IE从此静悄悄了:
<!-- saved from url=(0014)about:internet -->


关于这段注释详细的解释请参考MSDN

大意是向本地 HTML 文件中添加一条“saved from URL”注释,以指示 Internet Explorer 对本地计算机上的 HTML 内容应用其他区域的设置。例如,您可以向一个本地 HTML 文件中添加一条“saved from URL”注释,以便可以将该 HTML 文件分配到 Internet 区域而不是本地计算机区域。如果您在 Internet 区域中允许脚本、签名的 ActiveX 控件和 Java 小程序,那么该本地 HTML 文件将使用这些缩减的安全权限运行。
要指示 Internet Explorer 对名为 Test.htm 的本地 HTML 文件使用 Internet 区域,请向 Test.htm 中添加以下注释。请在 标记前面单独使用一行来添加该注释。
May
8
2009
帮朋友招聘高级Flex程序员,有JAVA/C++背景者优先,月薪约在1.5万左右,牛人另议。
简历请直接发送给 wb6 [at] hotmail dot com, 就不用发送给我了。

Responsibilities:
  Responsible for the development of the key Flex portions of the Idapted Technology Platform.
  Work with engineers to integrate Flex applications into a Java backend.

Requirements:
Ability to learn quickly and build products rapidly.
Real experience developing web applications.
Thorough knowledge with web standards, such as XML, JavaScript, HTTP.
  Strong data structure and OO-design skills.
  Ability to be self-directed and contribute meaningfully to a team with minimal management oversight.
  Bonus: experience with user experience and usability methodologies
  Bonus: Experience building JAVA/PHP applications
May
5
2009
原文:
http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html
但是其中有多条例子举反了,比如原文第25条:
引用

25. Avoid calculations and method calls in loops


for (var i=0;i< myArray.lengh;i++){ }

NOT:

  
var len : int = myArray.lengh;  
for (var i=0;i

正确的说法是使用

var len : int = myArray.lengh;  
for (var i=0;i
而不是

for (var i=0;i< myArray.lengh;i++){ }

这里还有一个在线测试:http://businessintelligence.me/projects/performance_tester/performanceTester.html
Apr
23
2009
如果想在Flex Actionscript工程里使用fl.*包下的组件,不妨使用这个SWC:
http://asform.googlecode.com/files/FlSWC.swc
我已经在其中包含了Yahoo Astra的系列Flash组件。
如果想仅仅使用部分其中的组件,可以在flash中先导入对应的组件,然后在Lib中右键,选择导出SWC即可。

当然,如果仅仅想使用Fl的UiComponent组件,可以到flash的安装目录下找到对应的源文件。但是在Flex Actionscript工程里直接使用其中的组件时,报错是必然的,因为皮肤文件没被导入:

TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/addChildAt()
at fl.controls::BaseButton/fl.controls:BaseButton::drawBackground()[C:\Program Files\Adobe\Adobe Flash CS3\en\Configuration\Component Source\ActionScript 3.0\User Interface;fl\controls;BaseButton.as:538]
at fl.controls::LabelButton/fl.controls:LabelButton::draw()[C:\Program Files\Adobe\Adobe Flash CS3\en\Configuration\Component Source\ActionScript 3.0\User Interface;fl\controls;LabelButton.as:600]
at fl.controls::Button/fl.controls:Button::draw()[C:\Program Files\Adobe\Adobe Flash CS3\en\Configuration\Component Source\ActionScript 3.0\User Interface;fl\controls;Button.as:167]
at fl.core::UIComponent/fl.core:UIComponent::callLaterDispatcher()[C:\Program Files\Adobe\Adobe Flash CS3\en\Configuration\Component Source\ActionScript 3.0\User Interface;fl\core;UIComponent.as:1379]
at [renderEvent]

Apr
11
2009
游戏名叫“Cursor * 10”, 游戏需要消除每层楼面上的图形,点击楼梯在各楼层间移动,最终到达16层。有一些隐秘的楼梯在你清除了特定楼层的图形后才会出现。游戏的每次尝试都只有20秒,而且有一些机关需要有人帮你按住开关才能通过,所以一次到达16层是不可能的事情。但是每次尝试都会被记录下来,并作为你的一个帮手出现在下次的尝试中。也就是说在第10次尝试中,游戏里会有9个鼠标在帮你。你要合理地安排一下每一次的路线,才让你不会帮你自己的倒忙。。。头晕了么?试试看吧:
Mar
7
2009
如前一篇Blog所述,正式发布Form的beta版。这一版基本完成了框架的搭建,将部分常用的样式配置独立出来,并且支持通过在外部设置XML配置,动态的生成组件甚至是程序的个模块。这一版本包含的组件有:
1、控制类:多选/单选; 下拉框; 文本输入框;  列表; 标签; 按钮/状态按钮/链接按钮;
2、布局类:HBox/VBox;
3、其他:Alert; Popout;
示例:

使用了这套组件开发的程序示例(一款音乐播放器):
http://lads.myspace.cn/widget/form/light/lightplayer.html
项目地址:
http://code.google.com/p/asform/
目前没有直接提供下载,可以通过svn访问源代码。SWC位于http://asform.googlecode.com/svn/trunk/Form/src/swc/Form.swc;一个完整的Test示例位于http://asform.googlecode.com/svn/trunk/FormTest/src/FormTest.as。

此外,我会在一个月后从Myspace China离职,目前下家尚未确定,只是在和一些朋友、猎头沟通,因此这套组件库的更新也许会停下来一段时间。当然如果朋友们有不错的公司,是很欢迎给我引荐下的,再此谢过。

下面是简单的使用示例:
1、基础控件的使用,直接使用封装好的类即可。如果要改变样式,可以改变FormAsset.swf中的对应的样式即可。更高级的组件定制请见后文。:

var radio1:Radio = new Radio();
radio1.label = "radio 1";
radio1.formName = "Radio";
radio1.width = 65;
var radio2:Radio = new Radio();
radio2.label = "radio 2";
radio2.formName = "Radio";
radio2.width = 65;
var radio3:Radio = new Radio();
radio3.label = "radio 3";
radio3.formName = "Radio";
radio3.width = 65;

addChild(radio1);
addChild(radio2);
addChild(radio3);    

2、如果要使用布局类,如HBox/VBox等实现随场景自动伸缩,其root需要指向ApplicationContainer这个类。ApplicationContainer封装了所有布局类、Alert、Popout的接口。
如:

package {
  import flash.events.Event;
  import flash.events.MouseEvent;
  
  import form.ui.*
  import form.ui.component.Layout.HBox;

  [SWF(backgroundColor="0xFFFFFF", frameRate="30", width="450", height="400")]
  public class FormTest extends ApplicationContainer
  {
    private var listData:Array;
    public function FormTest()
    {
      super();
      this.layout.paddingLeft = 10;
      this.layout.paddingTop = 10;
      
      runDefault();      
    }
    
    private function delayTest(li:ListBase):void
    {
      for(var i:int = 300; i < 350; i++)
        li.addItem({"label": i, "b": "act"});
    }
    
    public function runDefault():void
    {      
      var checkBoxLabel:Label = new Label();
      checkBoxLabel.formValue = "CheckBox Group";
      checkBoxLabel.width = 200;
      addChild(checkBoxLabel);
      
      var checkBox1:CheckBox = new CheckBox();
      checkBox1.label = "checkBox 1";
      checkBox1.width = 70;
      checkBox1.checkedOnAddedToStage = true;
      var checkBox2:CheckBox = new CheckBox();
      checkBox2.label = "checkBox 2";
      checkBox2.width = 70;
            
      var checkBoxBox:HBox = new HBox();
      checkBoxBox.percentWidth = 100;
      
      checkBoxBox.addChild(checkBox1);
      checkBoxBox.addChild(checkBox2);      
      addChild(checkBoxBox);
      
      var select:Select = new Select();
      select.addHeader("Default Header");
      select.addOption("Select Opinion1", "Select Opinion1");
      select.addOption("Select Opinion2", "Select Opinion2");      
      select.prompt = "Select";
      
      var input:Input = new Input();
      input.prompt = "Input";
      
      var button:FormButton = new FormButton();
      button.label = "Button";
      button.width = 80;
      button.addEventListener(MouseEvent.CLICK, showAlert, false, 0, true);    
      
      var ioBox:HBox = new HBox();
      ioBox.percentWidth = 100;
      ioBox.horizontalGap = 10;
      
      ioBox.addChild(select);
      ioBox.addChild(input);
      ioBox.addChild(button);
      addChild(ioBox);    
    }
    
    private function showAlert(e:Event):void
    {
      
      Alert.show("Alert Title", "Alert Message");
    }
  }
}

3、最强大的部分:这套组件建立的核心是快速应对变化的需求,以不变(组件核心库)应万变(只改变配置文件)。下面先看一段XML:

<?xml version="1.0" encoding="utf-8" ?>
<layout>
  <layoutType>boxLayout</layoutType>
  <url>assets/blackAsset.swf</url>
  <global>
    <item name="cn.myspace.player.ui.DefaultTrackListRender" style="index-text-color: #FFFFFF; track-title-color:#FFFFFF; "/>
  </global>
  <data>    
    <app style="padding: 5px; vertical-gap:5px; background:bgClip_linkage; background-size:100%;">
      <hbox style="width:100%; height:35px; padding-top:2px; padding-bottom:5px;">
        <logo style="background:logo; width:100%;"/>
      </hbox>    
    </app>
  </data>
</layout>

传统的Flex中,样式(Skin)是可以编译成SWF从而实现在RunTime换肤。而这套组件就没必要重复造轮子了。
以播放器为例,播放器出去一些控制按钮、均衡器、波形表等基础组件外,再也没有其他的可变的部分了。这是“不变”的根本。变化的是这些部件的外观和各种组合方式。如果他们能写到配置文件里...是的,以后要做的就不再是开发,而是维护工作了。这边是上面这段XML做的事情。完整的皮肤配置文件位于http://lads.myspace.cn/widget/form/light/assets/userBlank.xml.
实际上 每个项目有一个组件工厂(必须是每个项目都各不相同,且很难定义一个统一的接口,所以不包含在Form库中。),工厂负责装配这些配置文件里的各个模块,它形如:

public class UIFactory
{
  public static function createUI(xml:XML):FMSprite
  {
    var name:String = xml.name().localName;
    var box:FMSprite;      
    name = StringUtils.trim(name).toLowerCase();
    switch (name)
    {
      case "app": box = ApplicationContainer.application; break;
      case "logo": box = new Logo; break;
      case "hbox": box = new HBox(); break;
      case "vbox": box = new VBox(); break;
      case "box": box = new Box(); break;
      case "art": box = new Art(); break;
      ...
    }
    
    var css:CSS = CssFactory.createCSS(box);
    css.fromXML(xml);
    return box;
  }
}

组件库有一个CSS分析器将所有XML组件元素标签的style属性转化为Flash的Class,然后由StyleManager类来管理这个组件的皮肤设置。
当然,这版还没有完成的一部分是List的ItemRender的动态配置。CSS的模块不一定每个项目都会用到,所以他和各个模块不存在依赖关系,实际项目中用到的时候才会import他们,尽管这个模块没多大。
更好的方式是,主程序只做容器,读取到配置文件都再决定加载它们,最后设定他们的外观——很多大型项目不都是基于这一思想实现的么?
播放器的代码由于是公司里的项目所以不便公开,这里只能给出一个大致的实现思想,很多人都可以顺着这个思想实现他。当然,这中想法在Flex里也是可以实现的。
Feb
26
2009
分页: 1/26 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]