2016-09-02 9 views
0

は、私が作成し、FramerJSプロトタイプにcanvas要素を追加するために管理している:Framer JSで 'canvas'描画関数を使用できますか?

myCanvas = document.createElement "canvas" 
myCanvas.setAttribute("width","750px") 
myCanvas.setAttribute("height","500px") 
myCanvas.setAttribute("style","border: 2px solid black; background: #CCC") 

container = new Layer 
    height: 1334 
    width: 750 
    backgroundColor: "white" 
    html: myCanvas.outerHTML 
ctx = myCanvas.getContext "2d" 

ctx.fillStyle = "blue" 
ctx.fillRect(0, 0, 50, 50) 

あなたprint(ctx)場合は、出力として有効なCanvasRenderingContext2Dを示しています。問題は、プロトタイプ上で何も起こらないということです。それは空白のままです - fillRect関数が呼び出されなかったようです。

これがサポートの欠如かどうか、私が何か間違っているかどうかを確認する必要があります。

答えて

1

レイヤーのhtmlをキャンバスhtmlに設定すると、作成したキャンバスへの参照が失われます。だから、fillRectが呼び出されていますが、htmlプロパティを削除し、代わりに行う場合は、キャンバス上で、あなたは実際に:)

が表示されない:

container._element.appendChild(myCanvas) 

キャンバスへの参照が残っていると、あなたが実際に描画しています表示されるキャンバス。

全例:

myCanvas = document.createElement "canvas" 
myCanvas.setAttribute("width","750px") 
myCanvas.setAttribute("height","500px") 
myCanvas.setAttribute("style","border: 2px solid black; background: #CCC") 

container = new Layer 
    height: 1334 
    width: 750 
    backgroundColor: "white" 

container._element.appendChild(myCanvas) 
ctx = myCanvas.getContext "2d" 

ctx.fillStyle = "blue" 
ctx.fillRect(0, 0, 50, 50) 

フレーマプロジェクト:http://share.framerjs.com/v4a1eyjv806s/

+0

これは働いていました!私はより良い答えで自分の質問に答えるつもりはありませんが、 '_element'についてのヒントでは、私はgoogle 'canvas'と '_element'と思って、フレーマーの男である「koenbok」からGithub Gistを見つけましたキャンバスがFramer JSで動作するようにするための例を示します。質問をここで詳細を更新したい場合:https://gist.github.com/koenbok/7012440、私はあなたの答えを受け入れるでしょう! – ortonomy

+0

私が投稿したフレーマープロジェクトへのリンクが見えましたか?これにはまったく同じコードが含まれています。私はそのコードをインラインに含める答えを更新しました。 – Niels

+0

パーフェクト、ありがとう!受け入れられました。 – ortonomy

関連する問題