


Menerobos had sintaks kanvas dan biarkan ia menyokong kemahiran tutorial rantai syntax_html5
Mari kita lihat sintaks lukisan kanvas biasa:
ctx.arc(centerX,centerY,radius,0,PI*2,true);
ctx.shadowColor = 'rgba(0,0,0,0.5)';
ctx.shadowBlur = "10" ;
ctx.fill();
ctx.beginPath();
ctx.shadowColor = 'rgba(0,0,0,0)';
ctx.moveTo( centerX-radius, centerY);
ctx.lineTo(centerX-radius,centerY - 50);
ctx.lineTo(centerX radius,centerY - 50);
ctx.lineTo(centerX radius,centerY) ;
// ctx.lineTo(centerX-radius,centerY);
ctx.fill();
ctx.beginPath();
ctx.fillStyle = 'rgba(255,0,0 ,1)' ;
ctx.arc(centerX,centerY-50,radius,0,PI*2,true);
ctx.fill();
Saya bukan gembira dengan sintaks kanvas asli Terdapat dua perkara: 1. Setiap ayat didahului oleh ctx (iaitu, objek konteks2d kanvas), dan 2. Setiap fungsi atau atribut mengambil satu baris, yang merupakan pembaziran ruang.
Saya sangat menghargai sintaks rantai jQuery, seperti:
$('#div1').show(300).html(p).delay(3000).slideUp(300).remove();
Oleh itu, saya juga ingin menggunakan sintaks ini untuk lukisan kanvas:
ctx.moveTo(500,0).lineTo(500,500).strokeStyle('#f00').stroke();
Salah satu cara ialah mensimulasikan objek context2d, ini Objek menyokong semua kaedah context2d asli, tetapi juga menyokong rantaian.
Walau bagaimanapun, anda tidak boleh mempunyai terlalu banyak kod, jika tidak, tiada siapa yang akan mahu menggunakannya.
Berikut ialah coretan kod lengkap yang saya namakan "kelas" ini XtendCanvas (ia bermula dengan X semula):
// Biarkan kanvas menyokong sintaks rantaian, daripada Ten Years Light
~fungsi () {var pro = ['simpan ','restore', 'skala', 'putar', 'terjemah', 'transform', 'createLinearGradient', 'createRadialGradient', 'getLineDash', 'clearRect', 'fillRect', 'beginPath', 'closePath', 'moveTo', 'lineTo', 'quadraticCurveTo', 'bezierCurveTo', 'arcTo', 'rect', 'arka', 'fill', 'stroke', 'clip', 'isPointInPath', 'measureText', 'clearShadow ', 'fillText', 'strokeText', 'strokeRect', 'drawImage', 'drawImageFromRect', 'putImageData', 'createPattern', 'createImageData', 'getImageData', 'lineWidth', 'strokeStyle', 'globalAlpha', 'fillStyle','font','shadowOffsetX','shadowOffsetY','shadowBlur','shadowColor','lineCap','lineJoin','miterLimit'];
fungsi XtendCanvas (kanvas) {
var ctx = canvas.getContext('2d'),
fn = function(){},
fnP = fn.prototype;
for(var j = 0,p=pro[0] ;p;p=pro[j ]) {
fn.prototype[p] = function (p) {
return function () {
var args = Array.prototype.slice.call(arguments) ;
// console.log(args);
if(typeof ctx[p] == 'function') {
ctx[p].apply(ctx,args);
} else {
ctx[p] = args '';
}
kembalikan fnP;
};
}(p);
}
kembalikan fn baharu;
};
tetingkap. Ia boleh digunakan seperti context2d biasa, tetapi perbezaannya ialah ia menyokong sintaks rantai:
Salin kod
Dengan cara ini anda boleh meletakkan semua operasi dalam satu ayat, dan anda juga boleh mengganggu pada bila-bila masa, melakukan perkara lain, dan kemudian meneruskan.
Kod ini bukan peningkatan kepada kanvas, tetapi hanya membenarkan ia menyokong sintaks rantaian. Tetapi kelebihannya ialah ia mempunyai kurang kod dan boleh dibenamkan dalam mana-mana perpustakaan JS Di sini saya berharap untuk mendapat "pengesyoran" daripada anda
Mesti ada kawasan yang patut diperbaiki dalam kod itu dan semua orang boleh memperbaikinya. dengan sendiri. Tetapi - jangan lupa penggali sumur apabila anda minum air Saya harap semua orang akan mengingati saya. Inilah ideanya:
Seperti yang anda lihat, bahagian terpanjang kod ialah array pro yang menyimpan nama kaedah, manakala kod teras adalah sangat pendek. Mengapa saya perlu mencipta tatasusunan sedemikian?
Pada asalnya, saya ingin mewarisi semua kaedah asli terus daripada CanvasRenderingContext2D, tetapi apabila melintasi CanvasRenderingContext2D ini dalam setiap penyemak imbas, hasilnya tidak konsisten. Jika saya mewarisinya secara langsung, maka apabila anda ingin menggunakan kaedah dalam Chrome untuk melaksanakan dalam Firefox, ralat akan dilaporkan.
Jadi saya hanya mengekstrak kaedah dan nama sifat biasa yang tidak boleh dibantah dalam CanvasRenderingContext2D Tiada cara lain selain membina tatasusunan tetap - anda boleh menambah kaedah anda pada budi bicara anda sendiri.
Kaedah dan sifat diekstrak, dan kemudian kaedah asli ditambahkan pada objek baharu saya. Saya mencipta fungsi kosong yang dipanggil fn untuk meletakkan kaedah saya.
Memandangkan elemen dalam tatasusunan ini mempunyai kedua-dua fungsi dan atribut, saya menilai sama ada ia adalah fungsi dalam gelung Jika ia adalah fungsi, ia akan dilaksanakan dengan parameter jika ia bukan fungsi ia mestilah atribut , tetapkan parameter kepada atribut ini.
Dengan cara ini, apabila anda menetapkan atribut kanvas, anda tidak perlu mengganggu rantai Anda hanya boleh menghantar nilai atribut secara langsung sebagai parameter, contohnya:
Fungsi tanpa nama, penutupan, prototaip dan gelung pelik yang saya bincangkan dalam artikel sebelum ini digunakan dalam perenggan ini.
Nampaknya agak mudah untuk dikatakan, tetapi saya benar-benar memikirkannya untuk masa yang lama, saya harap ia akan berguna kepada semua orang.
Dalam proses menulis kod, saya mendapati bahawa Chrome mempunyai pendekatan yang sangat baik Ia mempunyai satu siri fungsi bermula dengan set, seperti setStrokeColor, setLineCap dan fungsi lain Dengan menghantar parameter kepada mereka, ia boleh gantikan gaya stroke dan lineCap yang sepadan, iaitu, kanvasnya penuh dengan fungsi dan tiada atribut Dalam kes itu, saya tidak perlu menilai sama ada ia adalah fungsi atau atribut. Tetapi tidak ada perkara sedemikian dalam firefox, jadi saya hanya boleh menggunakan idea sebelumnya.
Izinkan saya juga melepaskan fungsi set:
Akhir sekali, saya tertanya-tanya mengapa kod saya tidak diserlahkan. . . Jika anda telah menontonnya sehingga akhir, maka anda juga boleh memberi saya cadangan, supaya saya juga boleh menjadi sia-sia.

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Menjalankan projek H5 memerlukan langkah -langkah berikut: memasang alat yang diperlukan seperti pelayan web, node.js, alat pembangunan, dan lain -lain. Membina persekitaran pembangunan, membuat folder projek, memulakan projek, dan menulis kod. Mulakan pelayan pembangunan dan jalankan arahan menggunakan baris arahan. Pratonton projek dalam penyemak imbas anda dan masukkan URL Server Pembangunan. Menerbitkan projek, mengoptimumkan kod, menggunakan projek, dan menyediakan konfigurasi pelayan web.

Pengeluaran halaman H5 merujuk kepada penciptaan laman web yang serasi dengan platform menggunakan teknologi seperti HTML5, CSS3 dan JavaScript. Intinya terletak pada kod parsing penyemak imbas, struktur rendering, gaya dan fungsi interaktif. Teknologi umum termasuk kesan animasi, reka bentuk responsif, dan interaksi data. Untuk mengelakkan kesilapan, pemaju harus disahpepijat; Pengoptimuman prestasi dan amalan terbaik termasuk pengoptimuman format imej, pengurangan permintaan dan spesifikasi kod, dan lain -lain untuk meningkatkan kelajuan pemuatan dan kualiti kod.

Langkah -langkah untuk membuat ikon klik H5 termasuk: menyediakan imej sumber persegi dalam perisian penyuntingan imej. Tambah interaktiviti dalam editor H5 dan tetapkan acara klik. Buat hotspot yang meliputi keseluruhan ikon. Tetapkan tindakan peristiwa klik, seperti melompat ke halaman atau mencetuskan animasi. Eksport dokumen H5 sebagai fail HTML, CSS, dan JavaScript. Menyebarkan fail yang dieksport ke laman web atau platform lain.

Artikel ini membincangkan menguruskan privasi dan keizinan lokasi pengguna menggunakan API Geolocation, menekankan amalan terbaik untuk meminta kebenaran, memastikan keselamatan data, dan mematuhi undang -undang privasi.

H5. Perbezaan utama antara program mini dan aplikasi ialah: Senibina Teknikal: H5 adalah berdasarkan teknologi web, dan program mini dan aplikasi adalah aplikasi bebas. Pengalaman dan Fungsi: H5 adalah ringan dan mudah digunakan, dengan fungsi terhad; Program mini adalah ringan dan mempunyai interaktif yang baik; Aplikasi berkuasa dan mempunyai pengalaman yang lancar. Keserasian: H5 adalah serasi, aplikasinya dan aplikasinya yang serasi dengan platform. Kos Pembangunan: H5 mempunyai kos pembangunan yang rendah, program mini sederhana, dan aplikasi tertinggi. Senario yang berkenaan: H5 sesuai untuk paparan maklumat, applet sesuai untuk aplikasi ringan, dan aplikasi sesuai untuk fungsi kompleks.

H5 bukan bahasa pengaturcaraan yang mandiri, tetapi koleksi HTML5, CSS3 dan JavaScript untuk membina aplikasi web moden. 1. HTML5 mentakrifkan struktur dan kandungan laman web, dan menyediakan tag dan API baru. 2. CSS3 mengawal gaya dan susun atur, dan memperkenalkan ciri -ciri baru seperti animasi. 3. JavaScript melaksanakan interaksi dinamik dan meningkatkan fungsi melalui operasi DOM dan permintaan tak segerak.

H5 (HTML5) sesuai untuk aplikasi ringan, seperti halaman kempen pemasaran, halaman paparan produk dan promosi korporat mikro. Kelebihannya terletak pada platformiti silang dan interaktiviti yang kaya, tetapi batasannya terletak pada interaksi dan animasi yang kompleks, akses sumber tempatan dan keupayaan luar talian.

<p> Fungsi halaman seterusnya boleh dibuat melalui HTML. Langkah -langkah termasuk: Membuat elemen kontena, memisahkan kandungan, menambah pautan navigasi, menyembunyikan halaman lain, dan menambah skrip. Ciri ini membolehkan pengguna melayari kandungan segmen, memaparkan hanya satu halaman pada satu masa, dan sesuai untuk memaparkan sejumlah besar data atau kandungan. </p>
