Cytat(erix @ 7.06.2010, 11:18:52 )

Ale do canvas nie potrzebujesz jakiejkolwiek wtyczki.

A flash jest w wielu dodatkach antyreklamowych po prostu blokowany.
A żeby przeglądać internet potrzebujesz przeglądarki... Adblock nie jest tak głupi i nie bloku wszystkiego. Poza tym mówisz tak jakby o flashu słyszano tylko w państwie podziemnym... Raczej więcej ludzi NIE zobaczy tej zdrapki w canvasie niż we flashu.
Cytat(erix @ 7.06.2010, 11:18:52 )

Czyżbym o czymś nie wiedział?
Zależy co chcesz wiedzieć.
Cytat(erix @ 7.06.2010, 11:18:52 )

Najpierw się rozeznaj, dopiero potem pisz w stylu
nie znam canvas, ale za...cie znam flasha, to wszędzie będę go przepychał. Canvas powoli zdobywa popularność, z czego się bardzo cieszę, zresztą - nie tylko ja.

Ok jest clip. Czytając dokumentację na temat tej metody jakoś szaro to widzę

Ale próbujcie, raczej się da. Nie znalazłem gotowców na ten temat. Podpowiedź to właśnie użycie metody clip.
I tu nie chodzi o to, że wszędzie będę przepychał flasha. Przejrzałem dokumentację canvasa już jakiś czas temu i nie zachwycił mnie. Gdyby chodziło o proste efekty typu odbicie, zegar, jakieś parę linii to oczywiście może być canvas. Ale do tego zadania właśnie bardzo dobrze nadaje się flash. Przypominam, dobór odpowiedniego narzędzia to zadania.
Jakby co gotowiec flash, którego gdzieś tam kiedyś wykopałem.
Kod
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.display.BlendMode;
import flash.events.MouseEvent;
public class Main extends Sprite
{
private var _s:Sprite;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// czarny obszar dla demonstracji
this.graphics.beginFill(0x000000);
this.graphics.drawRect(0, 0, 400, 400);
this.graphics.endFill();
this.blendMode = BlendMode.LAYER;
this._s = new Sprite();
this._s.blendMode = BlendMode.ERASE;
this._s.graphics.lineStyle(10, 0x000000);
this.addChild(this._s);
this.stage.addEventListener(MouseEvent.MOUSE_DOWN, this.onMouseDown);
this.stage.addEventListener(MouseEvent.MOUSE_UP, this.onMouseUp);
}
private function onMouseDown(e:MouseEvent):void
{
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.onMouseMove);
this._s.graphics.moveTo( e.stageX, e.stageY);
}
private function onMouseUp(e:MouseEvent):void
{
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.onMouseMove);
}
// zmazywanie
private function onMouseMove(e:MouseEvent):void
{
this._s.graphics.lineTo(e.stageX, e.stageY);
}
}
}