понедельник, 14 января 2008 г.

Заготовка для прелоадера

Любая флешка начинается с прелоадера (Если, конечно не лень его делать-)). Я использую такую заготовку:
package {
import flash.display.Sprite;
import flash.events.Event;
import main.Preloader;
public class Game extends Sprite {

public function Game() {

var preloader:Preloader = new Preloader();
addChild(preloader);
preloader.addEventListener("loadComplete", onLoadComplete);
}

private function onLoadComplete(e:Event):void {
trace("Documet class: Load Complete")
}
}
}

package main {
import flash.display.Sprite;
import flash.events.EventDispatcher;
import flash.events.Event;
import flash.text.TextField;

public class Preloader extends Sprite {

private var myText:TextField;

public function Preloader() {
this.myText = new TextField();
this.addChild(myText);
myText.text = "Loading ..."
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}

private function onEnterFrame(e:Event):void {
if (this.stage != null) {
var loaded:Number = stage.loaderInfo.bytesLoaded;
var total:Number = stage.loaderInfo.bytesTotal;
trace("loaded = "+loaded);
trace("total = " + total);

if (loaded == total) {
this.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
this.dispatchEvent(new Event("loadComplete"));
}
}
}

}
}

Как добавить экземпляр класса подгружаемого мувика

Пусть есть флешка library.swf и в её библиотеке есть мувик связанный с классом MC
(Свойства, галочка Экспорт для ActionScript)
Есть другая флешка loader.swf которая подгружает флешку library.swf.

package {
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;

public class loader extends Sprite {
var e:Event;
var a:ApplicationDomain;
public function loader() {
var url:URLRequest = new URLRequest("library.swf");
var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
l.load(url);
}

private function onLoadComplete(e:Event) {
trace("loaded");
var currentClass:Class = e.target.applicationDomain.getDefinition("MC") as Class;
var s:Sprite = new currentClass();
addChild(s);

var s2:Sprite = new currentClass();
addChild(s2);

s2.x = 50;
s2.y = 50;
}
}
}


На сцене подгружающей флешки появились два мувика из подргуженной.
Круть -)))

четверг, 10 января 2008 г.

Wowza Media Server подешевел

Одной из алтернатив FMS и Red5 является Wowza Media Server.
Решил посмотреть по-подробнее что сие такое. Обратил внимание на то как резко изменилась цена на Pro Unlimited edition.
Год назад она стоила $5000
А теперь $995
Видимо не велик спрос -) Red5 скоро и FMS подъест.

среда, 9 января 2008 г.

Top4Top

Новый портал реализованный полностью на флеше Top4Top
На блоге у Роста разразилось крупномасштабное сражение

Лично мое мнение: Если идея более-менее (хотя 10001 веловипед чего и не сделать то), то реализация очень хреновая, все какое-то угловатое, разнородные прелоадеры то там то тут жужжащие вызывают панику и желание скорее убраться на нормальный HTML сайт

Совершенно согласен с этим комментарием:

Так вот: я не мог находиться на сайте больше 5 минут из за совершенно некомфортного ощущения тормознутости и наказывания ожиданием за любой клик.

понедельник, 7 января 2008 г.

FullScreen mode в браузере

Уже слышал ранее, но только сейчас возникла необходимость использовать полноэкранный режим флэш-плагина. Впечатляющее зрелище, когда флешка открывается из маленького баннерка на весь экран.
FullScreen по-русски на Flash
FullScreen по-английски на Flex

среда, 2 января 2008 г.

Pure MVC

Пока Рост пишет странные сообщения о медитации на тему фреймворка Pure MVC и продолжает какие-то "тривиально неполезные" описания и обещает выложить пример использования...
Один из авторов книги ActionScript 3.0 Design Patterns (O'Reilly, 2007) в своем блоге выложил минимальный пример и детально описал принцип его работы в контексте фреймворка

Как сохранять видео с youtube.com ?

Очень просто. Установить плагин для FF от Sothink. В комплекте есть еще проигрыватель FLV