30/09/2018, 17:07
Hỏi về sử dụng hàm mouseClicked= function()
Em chào các Bác EM mới bắt đầu học JS thông qua trang của Khanacademy. có 1 phần em muồn hỏi về hàm mouseClicked , hàm này có cho biến vào được không ạ? Ví dụ như hàm cơ bản này chẳng hạn:
mouseClicked = function() {
ellipse(mouseX, mouseY, 20, 20);
};
khi click chuột thì sẽ có hình tròn với w=20, h=20 hiện ra. Tuy nhiên nếu em muốn thay 2 kích thước này bằng 2 biến là a,b để có thể thay đổi kích thước của elip nếu muốn thì không đc ạ!; code của em như sau:
mouseClicked = function(a,b) {
ellipse(mouseX, mouseY, a, b);
};
mouseClicked(12, 30);
Phiền các tiền bối giúp em với
Bài liên quan
mouseClicked()
có vẻ là hàm tự viết. Bạn có thể sửa lại được. Còn nếu là event của browser thì chịuBạn đưa nguyên file code lên thì dễ hiểu hơn.
mình không hiểu mouseClicked được gọi chỗ nào, nên không biết có truyền tham số được hay không
https://www.khanacademy.org/computer-programming/var-mouseclicked-function/1897113673
Dạ, em đưa link của em đang học theo trên Khanacademy đây ạ!
Nếu em không viết ngay kích thước của hình em muốn vẽ trên giao diện bên phải như code mà để nó là biến a, b rồi gọi lại hàm kèm theo kích thước mong muốn thì khi click chuột không vẽ được trên giao diện nữa các Bác ạ!
Còn code của em (cái mà không chạy được ) nó thay bằng như thế này ạ:
Em xin cám ơn các Bác
Code bạn đang học không phải là JavaScript thuần mà nó sử dụng thư viện ProcessingJS.
Theo cách hoạt động của thư viện này (nếu mình hiểu đúng) thì không thể truyền tham số vô hàm
mouseClicked
được đâu vì bạn không gọi nó mà do thư viện ProcessingJS gọi.mouseClicked
được khai báo trong thư viện ProcessingJSmouseClicked
được định nghĩa (implemented) trong code của bạnmouseX
,mouseY
mouseClicked
được định nghĩa hay chưa, nếu có thì sẽ gọi thực thi hàm đó:mouseClicked()
mà không có tham số truyền vàoNếu bạn muốn thay đổi kích thước của ellipse thì bạn phải gán giá trị vào 2 biến toàn cục bằng cách nào đó, sau đó truyền nó vào hàm
ellipse()