Saturday, November 26, 2011

PHP content management systems using subMerged

subMerged is a theme or template for various content management systems.
Detail can be found:
There are  subMerged for phpBB3, Coppermine Photo gallery, phpWebSite, and phpNuke
Below is the demo for  Coppermine Photo gallery.

Friday, November 25, 2011

JavaScript, set focus on document.form

Purpose: when the web page is loaded, set the focus on the subject of  the form,
i.e. the input field of  the subject in the form is blinking and ready to accept the text input.

<form name="testform">
<input type="text" name="subject">
Modify the body tag to:
<body OnLoad="document.testform.subject.focus();">

Tuesday, November 22, 2011

Online vector graphics editor - SVG editor

You can download SVG-editor for free from
You just need to copy the download folder to your web server and run svg-editor.html.
You can have free-hand drawing, lines, polylines, ellipses, square and much more features online.

One of the website used SVG editor for clipart is:
I do find a lot of nice drawings there using SVG editor.

SVG editor demo can be found below as embed:

Monday, November 21, 2011

Flash CS5 actionscript editor and Code Snippets

This video tutorial from Adobe TV shows how to use custom class code hint and completion in Flash CS5 ActionScript editor.

You may not remember all the ActionScript libraries and functions. The video below from Adobe TV show you how to use and modify existing snippets to quickly add functionality to your project, as well as creating and saving your own snippets for later use.

Show quoted text and hide quoted text in JavaScript

In GMail, we can see "show quoted text" and "hide quoted text"
in the mail body. We can apply the same functionality in blog posts
use JavaScript.

1) First, we need to define two CSS classes: hidden and displayed
<style type="text/css">
.hidden { display: none; }
.displayed { display: block; }

2) Second, we need to define a Javascript function display to toggle
between hide and display
<script type="text/javascript">
function display(divID) {
    var item = document.getElementById(divID);
    if (item) {
        document.getElementById('toggletext').innerHTML =(item.className=='hidden')?'Hide quoted text':'Show quoted text';


3) Create a hide and display link

<a id='toggletext' href="javascript:display('testcode');">Show quoted text</a>
<div id="testcode" class="hidden">
    <h3>Welcome to Jiansen Lu blogs</h3>

Result (click to see the hidden text)

Show quoted text

Thursday, November 17, 2011

ActionScript 3.0: produce an online voice recorder in flash

Following the instruction on active tuts website:
I designed an online voice recorder as below. The design used  the MicRecorder class from google code library. When you click the button,  the sound around is recorded by your microphone.  When you click stop, the sound is saved in your local computer.

Another good flash tutorial can be found:

 Result of my sound recorder.

Wednesday, November 16, 2011

Difference between Actionscript 3.0 and ActionScript 2.0 video tutorial

This one hour video tutorial from Adobe TV is presented by renowned Flash developer R Blank. He explains the basics of getting things done in ActionScript 3.0 and the difference between ActionScript 3.0 and ActionScript 2.0.

ActionScript 3.0: read in xml file

I have a XML file scenario1.xml:
 <?xml version="1.0" encoding="UTF-8"?>
<simulator id="1">

The reason I used CDATA is that I want to  pass html tags in my xml data. The html tags included in between CDATA tags will not be treated as xml tags. The following process is to test reading in XML file in flash.

A) Open Flash CS3 and create new actionscript 3.0 document. Press F9, enter following ActionScript:
var scenarioXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("scenario1.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
scenarioXML = new XML(;
if (scenarioXML.elements("*").length() > 0 ) {
var simulators:XMLList = scenarioXML.simulators.children();
for each(var thisSim:XML in simulators) {
var sim = {}; = int(thisSim.attribute('id')); =;
sim.thumbnail = thisSim.thumbnail;
sim.sprite = thisSim.sprite;
sim.required = int(thisSim.required);
sim.location = thisSim.location.split(',');
sim.dimensions = thisSim.dimensions.split(',');
B) Test Movie:
trace( produced Traditional Surgical Workbenches, not . While trace(simulators.*) dumped all contents.

Actionscript 3.0 design a flash loader using progress bar and UILoader

Purpose: To design a container to load external flash and show loading progress bar
1. Open flash CS5, new ActionScript 3.0 flash document
2. Set document Class as "Loader" in the Properties panel.
3. Drag the ProgressBar component and UILoader component from the Components panel to the library.
4. Save this files as Loader.fla.
5. In the same folder of Loader.fla, enter following ActionScript 3.0 in
import flash.display.MovieClip;
import flash.display.Sprite;
import fl.containers.UILoader;
import fl.controls.Label;
import fl.controls.ProgressBar
import fl.controls.ProgressBarMode;

import flash.text.*;
//For Security.allowDomain
import flash.external.ExternalInterface;
import flash.system.Security;

public class Loader extends Sprite
private var UI_intro_loader:UILoader;

private var progressText:TextField;
private var bar_pb:ProgressBar;

private var introURL:String = '';

public function Loader()

private function init():void
//Load the Room Builder
var now:Date = new Date();
var queryString = this.loaderInfo.parameters;
var domain = "";
// allow domain to access this flash
UI_intro_loader = new UILoader();
UI_intro_loader.autoLoad = false;
UI_intro_loader.source = introURL;
UI_intro_loader.scaleContent = false;

bar_pb = new ProgressBar();
bar_pb.mode = ProgressBarMode.EVENT;
bar_pb.source = UI_intro_loader;
bar_pb.move(stage.stageWidth / 2 - bar_pb.width / 2, stage.stageHeight / 2);
bar_pb.addEventListener(ProgressEvent.PROGRESS, onProgress);
bar_pb.addEventListener(Event.COMPLETE, onComplete);

progressText = new TextField();
progressText.x = bar_pb.x;
progressText.y = bar_pb.y + bar_pb.height;
progressText.textColor = 0xffffff;
progressText.autoSize = TextFieldAutoSize.LEFT;
addChildAt(progressText, 1);


private function onProgress(e:ProgressEvent):void
progressText.text = int(e.currentTarget.percentComplete) + '%';

private function onComplete(e:Event):void

addChildAt(UI_intro_loader, 1);
var intro:MovieClip = UI_intro_loader.content as MovieClip;;
//remove progress bar when it is done!
bar_pb.removeEventListener(ProgressEvent.PROGRESS, onProgress);
bar_pb.removeEventListener(Event.COMPLETE, onComplete);

6. Result:

7. Reference:
A.Use the ProgressBar component
B.Customize the ProgressBar component

Wednesday, November 9, 2011

ActionScript 3.0: play and play again buttons

To design a game in flash using ActionScript 3.0, click play button to start a game. After the game over, click "Play Again" button to restart the game.

1) Start Flash CS5, click new-> actionscript 3.0, name your fla  fileas myGame.fla, set class: myGame in property menu.
2) Create 3 frames, the first frame name: "start", second frame name: "play", the third frame name: "gameover"
3) In "start" frame, create a button instance name: startButton
Press F9, enter following actionscript:
//stop at first frame
//When mouse click startButton, call function clickStart
function clickStart(event:MouseEvent) {
//go to "play" frame
4) In "play" frame, create your game. for example, you can create a MovieClip and you can call a function from actionscript file.

5) In "gameover" frame, create a button called "playAgainButton". Press F9 to enter following actionscript:
//When mouse click "playAgainButton" button, call clickPlayAgain function
function clickPlayAgain(event:MouseEvent) {
//go to "play" frame

Friday, November 4, 2011

The RSA Animate series of video clips

The RSA Animate series of video clips used animation to present some very sophisticated ideas to learners. You can find all RSA animate video series here:
Example video: RSA Animate - Smile or Die
Acclaimed journalist, author and political activist Barbara Ehrenreich explores the darker side of positive thinking.

Maximum number of MySQL connection

Use MySQL query browser to check maximum number of MySQL connection:
1) Click Tools at the top manual
2) Select MySQL Administrator
3) Click Start Variables at the left Panel
4) Click "Advanced Networking", under Advanced, you can change Max connection, the default for old MySQL database is 100, for MySQL 5.5 is 151.

Some flash code and ActioScript Resources

Flash Game University is the companion site for the book ActionScript 3.0 game programming university. You can finsh video tutorials for flash game design from Flash Game University on:

The source code can be downloaded from:

There are alos some great articles from

For how to compile ActionScript, you can find it from:
There are also some detail explanation of ActionScript:

Wednesday, November 2, 2011

Clear file history in Acrobat Reader, Word document and Firefox

In Acrobat Reader:
1) Click Edit in the top menu
2) Select Preferences
3) Click Documents (the first row)
4) Right side under open setting, change the "Documents in recently used list" to 1. You can select from 1 to 10.

In Word document:
  • Click the File tab
  • Click Recent, you can see a list of your recent files
  • Right click the file you want to remove from the list  and select Remove from the list
In Firefox, you can select Start Private Browsing in Firefox tab to let your browsing history not saved.  To clear history in Firefox:

1) Click Firefox tab and click options
2) Click options
3) Click Privacy tab,
4) Click clear your recent history

    Tuesday, November 1, 2011

    PHP, compress and extract files using PclZip library

    PclZip library offers PHP compression and extraction functions for Zip formatted archives. PclZip library can be downloaded from:

    The user menu can be found HERE.

    To include pclzip library:
    To add or extract very large file, "memory_limit" value in php.ini needs to be increased. "memory_limit" can also set in the PHP code:
    To initialize a zip instance:
     $myzipfile = new PclZip('');
    To create a zip file from image1.jpg and image2.jpg:
    $mylist $archive->create('mydata/image1.jpg,mydata/image2.jpg',