AS3背景全屏

五月 20th, 2009 / No Comments » / by iwill

来自 http://www.blog.noponies.com/

背景可载入SWF或图片

下载

示例

Tags: ,

强力推荐一个免费米国虚拟主机-http://www.freewha.com/

五月 19th, 2009 / No Comments » / by iwill

http://www.freewha.com/

500M网页空间,单个文件限制10M,不限制文件格式

单日流量5G

1 个MYSQL数据库无限空间

支持FTP

无广告

可绑定域名

最重要一点,暂时还未被GFW

Tags:

Over the rainbow (Connie Talbot)

五月 19th, 2009 / No Comments » / by iwill

连D最喜欢这种LOLI

Tags:

左海

五月 18th, 2009 / No Comments » / by iwill

左海

左海

Read more…

Tags:

New Balance MT580WK

五月 3rd, 2009 / No Comments » / by iwill

五一在大洋4折买了NB 580, 原价1280…

New Balance MT580WK

New Balance MT580WK

  Read more…

Tags: , , ,

AS3中的Timer类

五月 3rd, 2009 / No Comments » / by iwill

Timer类是AS3新增的类,用以替代AS2中的setInterval()和setTimeout()函数。当创建Timer类实例时,就会以固定时间间隔启动计时器事件。

var timer:Timer = new Timer(delay,repeatCount);

你要使用addEventListener建立一个方法处理这些事件,再用start()方法启动,以及stop()方法停止。

Timer类是flash.utils包的一部分, flash.events包中也有一个TimerEvent类,所以,必须导入下列包:

flash.events.TimerEvent;
flash.utils.Timer;

代码示例:

var _PreviousTime:Number=0;
var tTimer:Timer=new Timer(500,10);
tTimer.addEventListener(TimerEvent.TIMER,onTimer);
tTimer.start();

function onTimer(event:TimerEvent):void
{
trace(flash.utils.getTimer() - _PreviousTime);
_PreviousTimer=flash.utils.getTiemr();
}

注意:上例中理论时间间隔是500毫秒,但实际上,其准确度和细致度会取决于电脑播放性能以及其它需要使用处理器的相关任务。这意味着:1,不要以为计时器可以极为准确;2,使用计时器时间间隔不要低于10毫秒。

如果要模拟setInterval()函数的功能,可以把重复读数设为零,这样可以让计时器事件无限次启动。stop()方法相当于clearInterval()函数,可以停止计时器。

同样,如果要模拟setTimeout()函数,就把重复计数设为1,计时器会等待指定的时间量,启动一个事件,然后结束。

利用Timer类的技巧之一,就是创建和影片帧数无关的动画。利用计时器,可以用任何想要的时间间隔来调用方法。

以下例子设置两个计时器分别给两个Sprite计时

var _square:Sprite;
var _circle:Sprite;
_square=new Sprite;
_square.graphics.beginFill(0xff0000);
_square.graphics.drawRect(0,0,100,100);
_square.graphics.endFill();
addChild(_square);
_square.x=100;
_square.y=50;

_circle=new Sprite();
_circle.graphics.beginFill(0×0000ff);
_circle.graphics.drawCircle(50,50,50);
_circle.graphics.endFill();
addChild(_circle);
_circle.x=100;
_circle.y=200;

var squareTimer:Timer=new Timer(50,0);
squareTimer.addEventListener(TimerEvent.TIMER,onSquareTimer);
squareTimer.start();

var circleTimer:TImer=new Timer(100,0);
circleTimer.addEventListener(TimerEvent.TIMER,onCircleTimer);
circleTimer.start();

function onSquareTimer(e:TimerEvent):void
{
_square.x++;
}

function onCircleTimer(e:TimerEvent):void
{
_circle.x++;
}

Tags: ,

AS3加载FLV的基本代码

四月 30th, 2009 / No Comments » / by iwill

使用NetStream对象载入和播放视频,使用Video对象显示视频。
NetStream对象只负责传输数据,而Video对象把视频呈现到屏幕上。
NetStream对象需要一个NetConnection对象决定其处理的数据来源。

1.导入相关包

import flash.display.Sprite;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;

2.定义NetStream和Video类

var stream:NetStream;
var video:Video

3.定义NetConnection,对于渐进式下载的视频,NetConnection使用的是null(空)的连接字符串

var connection:NetConnection=new NetConnection;
connection.connect(null)

4.将NetConnection指定到NetStream,用play()方法指定播放的视频

stream=new NetStream(connection);
stream.play(”example.flv”)

5.NetStream对象在载入FLV文件时,必需用client属性指定对其调用回调方法以处理流或 FLV 文件数据的对象

var client:Object=new Object();
stream.client=client;

6.Video 对象链接NetStream,并加入显示清单

video.attachNetStream(stream);
addChild(video);

======================================
完整代码:

package {
import flash.display.Sprite;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
public class video extends Sprite {
var _video:Video;
var _stream:NetStream;
public function video() {
_video=new Video(600,450);
var connection:NetConnection = new NetConnection();
connection.connect(null);
_stream=new NetStream(connection);
_stream.play(”example.flv”);
var client:Object=new Object();
_stream.client=client;
_video.attachNetStream(_stream);
addChild(_video);
}
}
}

Tags: ,

试用下Google Maps API for Flash

四月 23rd, 2009 / No Comments » / by iwill

Google maps api for flash 是基于AS3写的,所以,FLASH CS3以下版本不被支持。以下过程基于FLASH CS4英文版所写。

首先,到http://code.google.com/intl/zh-CN/apis/maps/documentation/flash/ 申请一个API KEY,并下载SDK。
将下载到的SDK里的lib/map_1_9.swc复制到FLASH CS4目录下的CommonConfigurationComponentsGoogle。(不要copy带FLEX的,那是FLEX用的…)

打开FALSH CS4,新建一个FLASH AS3文件,打开组件面板,把GoogleMapsLibrary拖到场景中。

选中第一帧,输下以下脚本:

import com.google.maps.LatLng;
import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapType;

var map:Map = new Map();
map
.key = your_api_key;
map
.setSize(new Point(stage.stageWidth, stage.stageHeight));
map
.addEventListener(MapEvent.MAP_READY, onMapReady);
this.addChild(map);

function onMapReady(event:Event):void {
map
.setCenter(new LatLng(26.053072,-119.297249), 14, MapType.NORMAL_MAP_TYPE);
}

把map.key = your_api_key; 引号里的内容换成你申请的API KEY,按下CTRL+ENTER。YEAH,GOOGLE MAPS就出来了。

如果生成的SWF在本机上查看,需要在发布设置里FLASH选项卡里的local playback改成 access network only

Tags: ,

《Flash ActionScript 3.0动画教程》学习笔记(1) - 缓动(easing)

四月 22nd, 2009 / No Comments » / by iwill

Flash ActionScript 3.0动画教程

Flash ActionScript 3.0动画教程

 初看此书封面,还以为是国内骗钱所出。
不料竟是《Foundation Actionscript 3.0 Animation:Making Things Move!》的中文译本。
而且翻译质量相当可以。
故决定通读此书,发笔记若干。

第一篇是 缓动(easing):

缓动需三条件:
1. 需要一个目标点
2.确定到目标点的距离
3.成比例地将影片移动到目标点

缓动的实现策略:
1.确定一个数字作为运动比例系数,这是个小于 1 的分数;
2.确定目标点;
3.计算物体与目标点的距离;
4.用距离乘以比例系数,得出速度向量
5.将速度向量加到当前物体坐标上;
6.重复 3 到 5 步

具体步骤:
1.新建1.fla, Easing1.as, Ball.as 置于同一目录下
2.在1.fla的文档类填Easing1.as
3.Easing1.as的脚本内容:

package
{
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class Easing1 extends Sprite
 {
  private var ball:Ball;
  private var easing:Number = 0.2;
  private var targetX:Number = stage.stageWidth-50;
  private var targetY:Number = stage.stageHeight-50;
  
  public function Easing1()
  {
   init();
  }
  
  private function init():void
  {
   ball = new Ball();
   addChild(ball);
   addEventListener(Event.ENTER_FRAME, onEnterFrame);
  }

  
  private function onEnterFrame(event:Event):void
  {
   var vx:Number = (targetX - ball.x) * easing;
   var vy:Number = (targetY - ball.y) * easing;
   ball.x += vx;
   ball.y += vy;
  }
 }
}

4.Ball.as的脚本内容:

package {
 import flash.display.Sprite;
 
 public class Ball extends Sprite {
  public var radius:Number;
  private var color:uint;
  public var vx:Number = 0;
  public var vy:Number = 0;
  
  public function Ball(radius:Number=40, color:uint=0xff0000) {
   this.radius = radius;
   this.color = color;
   init();
  }
  public function init():void {
   graphics.beginFill(color);
   graphics.drawCircle(0, 0, radius);
   graphics.endFill();
  }
 }
}

Tags: ,

Setting Equal Heights with jQuery

四月 20th, 2009 / No Comments » / by iwill

原文:
http://www.filamentgroup.com/lab/setting_equal_heights_with_jquery/

使某一容器下的top-level子元素的高相等

Steps:

1.链接jQuery 及此 plugin:
<script type=”text/javascript” src=”/js/jquery-1.3.2.min.js”></script>
<script type=”text/javascript” src=”/js/jQuery.equalHeights.js”></script>

2.<header>中加入:
<script type=”text/javascript”>
 $(function(){ $(’#x’).equalHeights(); });
</script>
#x为要等高的容器的父元素

3.
CSS:
<style type=”text/css”>
#x div{ width:200px; float:left; margin-right:10px; background:#ccc;}
</style>

HTML:
<div id=”x”>
 <div>asf</div>
    <div>adsf<br />adsf<br /></div>
    <div>adsf<br />adsf<br />adsf<br /><<p>sdfsdf<br />fsf<br /></p></div>
    <div>adsf<br />adsf<br />adsf<br />adsf<br /><p>sdfsdf</p></div>
</div>

Tags: