Merhabalar,
Dostlar ben java ve javascript öğrenmek istiyorum. Önceliğim javascript çünkü after effects için script hazırlamak istiyorum işimi kolaylaştıracak. Bir yandan java da öğrenmek istiyorum ama diğer programlama dillerinin mantığını anlayamadığım gibi bunları da anlayamadım. C, C++, Phyton gibi programlara dillerine bir gireyim dedim izlediğim eğitimlerde konsolun dışına çıkamadık. Bir program yapmak istiyorum visual studio'daki gibi bir form oluşturmak ama eğitimlerde dediğim gibi hep konsol üzerinden gidiyor bir anlam veremediğim bu.
Diğeri ise java ve javascript olayı. Ben öncelikle javascript öğrenmek istiyorum. After effects te script yazıp işimi kolaylaştırmak için. Fakat eğitimleri açtığımda hep html ile birlikte çalışılıyor, program üzerine yazmayla alakalı bir eğitim bulamadım.
Mantıklı bir açıklamasını benimle paylaşırsanız çok sevinirim.
Yazılım Programlama öğrenmenin mantığı nedir ?
7
●251
- 29-11-2018, 23:26:46
- 29-11-2018, 23:32:09Pek anlayamadım. Video da izliyorum, makale kaynakta okuyorum. Ama hiç birşey bilmeden deneye deneye kod yazılmaz herhalde diye tahmin ediyorum.
PHP biliyorum, o yüzden temelim var. fakat dediğim gibi bu mantığı anlamadım sadece. - 29-11-2018, 23:35:00umarım java ve yavascriptin farklı bişey olduğunu biliyoesunuzdur.
mantığı bedir derken anlaşılmayacak ne varki ?
consol dediğin şey mantığı öğretmek için.senin istediğin mesela c# windows form üzerinde çalışmak.bunda da mantık buton koyup içine yapmak istediği işlemi yaptırtmak.python üzerine çalışıyorum hala çözemedim nasıl olacak.öğrendimki py qt ktüphane ile arayüz yapılıyor.öğreniyoesun numpy ile farklı birşey.diğer kütüphane ile görseller.
yılma devam et çalışmaya.oluşturmak kurmak ve bunu başkasına kullandırıp fayda sağlaycak.bunun hazıı hiçbirşey de olamaz - 29-11-2018, 23:42:17evet hocam biliyorum farklı olduğunu da javascripte genel bir baktım. html ile textbox oluşturuyor onun üzerinden gidiyor mesela. Ama after effectste bir textbox oluşturmak adına hiç birşey bulamadım. Javascript eğitim kaynaklarında.Prens55 adlı üyeden alıntı: mesajı görüntüle
- 29-11-2018, 23:45:59after effect yazılım yada programlama değil hocam masaüstü uygulaması yani peogram.oRoCHiMaRu adlı üyeden alıntı: mesajı görüntüle
kullanmasığım için bilemeyeceğim ama sonuna kadar bitirin izleyin ondan sonra kafa yorun
- 29-11-2018, 23:51:25Bilgisayar programcılığı okuyorum. Consol üzerinden gidiyor demişsin. İlk öncelikle hangi kodların ne işe yaradığını, ne gibi farklarının olduğunu ve kullanım yerlerini bilmelisin. O şekilde form kısmına geçip istediğini yapabilirsin. Ayrıca ilk algoritmayı bilmelisin özellikle de söz kodlar yöntemini.
- 29-11-2018, 23:59:44Hocam after effects programı video kompozisyon programı. Bende bu programı kullanıyorum grafik işlerimde. Bu program üzerinde javascript kodları çalıştırılıp bazı şeyler kolay hale getirilebiliyor.Prens55 adlı üyeden alıntı: mesajı görüntüle
Adobe ExtendScript diye bir java editörü var. Bunun üzerinden After effects için javascript dili ile script oluşturulabiliniyor. Örneğin after effects'in içinde bulunan hazır bir javascript kod örneği atayım. göreceksiniz ki hiç html kodu kullanılmadan radio button yapılmış. Ama gördüğüm eğitimlerin çoğunda html ile oluşturuluyor. bunun gibi farklılıklar mevcut.
{ // Scale Composition.jsx // // This script scales the active comp and all the layers within it. // // First, it prompts the user for a scale_factor, a new comp width, // or a new comp height. // // Next, it scales the comp and all the layers within it, including // cameras. function ScaleComposition(thisObj) { var scriptName = "Scale Composition"; // This variable stores the scale_factor. var scale_factor = 1.0; var text_input = null; var scaleButton = null; var widthButton = null; var heightButton = null; function onScaleButtonClick() { this.parent.text_input.text = scale_factor; } function onWidthButtonClick() { var activeItem = app.project.activeItem; if ((activeItem == null) || !(activeItem instanceof CompItem)) { alert("Please select or open a composition first.", scriptName); } else { this.parent.text_input.text = Math.floor(activeItem.width * scale_factor); } } function onHeightButtonClick() { var activeItem = app.project.activeItem; if ((activeItem == null) || !(activeItem instanceof CompItem)) { alert("Please select or open a composition first.", scriptName); } else { this.parent.text_input.text = Math.floor(activeItem.height * scale_factor); } } function testNewScale(test_scale) { var is_ok = true; var activeItem = app.project.activeItem; if ((activeItem == null) || !(activeItem instanceof CompItem)) { alert("Please select or open a composition first.", scriptName); } else { if (test_scale * activeItem.width < 1 || test_scale * activeItem.width > 30000) { is_ok = false; } else if (test_scale * activeItem.height < 1 || test_scale * activeItem.height > 30000) { is_ok = false; } } return is_ok; } // // This function is called when the user enters text for the scale. // function on_textInput_changed() { var activeItem = app.project.activeItem; if ((activeItem == null) || !(activeItem instanceof CompItem)) { alert("Please select or open a composition first.", scriptName); } else { // Set the scale_factor based on the text. var value = this.text; if (isNaN(value)) { alert(value + " is not a number. Please enter a number.", scriptName); } else { var new_scale_factor; if (this.parent.scaleButton.value == true) { new_scale_factor = value; } else if (this.parent.widthButton.value == true) { new_scale_factor = value / activeItem.width; } else { new_scale_factor = value / activeItem.height; } if (testNewScale(new_scale_factor)) { scale_factor = new_scale_factor; } else { alert("Value will make height or width out of range 1 to 30000. Reverting to previous value.", scriptName); // Load text back in from current values. if (scaleButton.value == true) { onScaleButtonClick(); } else if (widthButton.value == true) { onWidthButtonClick(); } else { onHeightButtonClick(); } } } } } function onScaleClick() { var activeItem = app.project.activeItem; if ((activeItem == null) || !(activeItem instanceof CompItem)) { alert("Please select or open a composition first.", scriptName); } else { // Validate the input field, in case the user didn't defocus it first (which often can be the case). this.parent.parent.optsRow.text_input.notify("onChange"); var activeComp = activeItem; // By bracketing the operations with begin/end undo group, we can // undo the whole script with one undo operation. app.beginUndoGroup(scriptName); // Create a null 3D layer. var null3DLayer = activeItem.layers.addNull(); null3DLayer.threeDLayer = true; // Set its position to (0,0,0). null3DLayer.position.setValue([0,0,0]); // Set null3DLayer as parent of all layers that don't have parents. makeParentLayerOfAllUnparented(activeComp, null3DLayer); // Set new comp width and height. activeComp.width = Math.floor(activeComp.width * scale_factor); activeComp.height = Math.floor(activeComp.height * scale_factor); // Then for all cameras, scale the Zoom parameter proportionately. scaleAllCameraZooms(activeComp, scale_factor); // Set the scale of the super parent null3DLayer proportionately. var superParentScale = null3DLayer.scale.value; superParentScale[0] = superParentScale[0] * scale_factor; superParentScale[1] = superParentScale[1] * scale_factor; superParentScale[2] = superParentScale[2] * scale_factor; null3DLayer.scale.setValue(superParentScale); // Delete the super parent null3DLayer with dejumping enabled. null3DLayer.remove(); app.endUndoGroup(); // Reset scale_factor to 1.0 for next use. scale_factor = 1.0; if (this.parent.parent.optsRow.scaleButton.value) { this.parent.parent.optsRow.text_input.text = "1.0"; } } } // // This function puts up a modal dialog asking for a scale_factor. // Once the user enters a value, the dialog closes, and the script scales the comp. // function BuildAndShowUI(thisObj) { // Create and show a floating palette. var my_palette = (thisObj instanceof Panel) ? thisObj : new Window("palette", scriptName, undefined, {resizeable:true}); if (my_palette != null) { var res = "group { \ orientation:'column', alignment:['fill','top'], alignChildren:['left','top'], spacing:5, margins:[0,0,0,0], \ introStr: StaticText { text:'Scale composition using:', alignment:['left','center'] }, \ optsRow: Group { \ orientation:'column', alignment:['fill','top'], \ scaleButton: RadioButton { text:'New Scale Factor', alignment:['fill','top'], value:'true' }, \ widthButton: RadioButton { text:'New Comp Width', alignment:['fill','top'] }, \ heightButton: RadioButton { text:'New Comp Height', alignment:['fill','top'] }, \ text_input: EditText { text:'1.0', alignment:['left','top'], preferredSize:[80,20] }, \ }, \ cmds: Group { \ alignment:['fill','top'], \ okButton: Button { text:'Scale', alignment:['fill','center'] }, \ }, \ }"; my_palette.margins = [10,10,10,10]; my_palette.grp = my_palette.add(res); // Workaround to ensure the edittext text color is black, even at darker UI brightness levels. var winGfx = my_palette.graphics; var darkColorBrush = winGfx.newPen(winGfx.BrushType.SOLID_COLOR, [0,0,0], 1); my_palette.grp.optsRow.text_input.graphics.foregroundColor = darkColorBrush; my_palette.grp.optsRow.scaleButton.onClick = onScaleButtonClick; my_palette.grp.optsRow.widthButton.onClick = onWidthButtonClick; my_palette.grp.optsRow.heightButton.onClick = onHeightButtonClick; // Set the callback. When the user enters text, this will be called. my_palette.grp.optsRow.text_input.onChange = on_textInput_changed; my_palette.grp.cmds.okButton.onClick = onScaleClick; my_palette.onResizing = my_palette.onResize = function () {this.layout.resize();} } return my_palette; } // // Sets newParent as the parent of all layers in theComp that don't have parents. // This includes 2D/3D lights, camera, av, text, etc. // function makeParentLayerOfAllUnparented(theComp, newParent) { for (var i = 1; i <= theComp.numLayers; i++) { var curLayer = theComp.layer(i); var wasLocked = curLayer.locked; curLayer.locked = false; if (curLayer != newParent && curLayer.parent == null) { curLayer.parent = newParent; } curLayer.locked = wasLocked } } // // Scales the zoom factor of every camera by the given scale_factor. // Handles both single values and multiple keyframe values. function scaleAllCameraZooms(theComp, scaleBy) { for (var i = 1; i <= theComp.numLayers; i++) { var curLayer = theComp.layer(i); if (curLayer.matchName == "ADBE Camera Layer") { var curZoom = curLayer.zoom; if (curZoom.numKeys == 0) { curZoom.setValue(curZoom.value * scaleBy); } else { for (var j = 1; j <= curZoom.numKeys; j++) { curZoom.setValueAtKey(j,curZoom.keyValue(j)*scaleBy); } } } } } // // The main script. // if (parseFloat(app.version) < 8) { alert("This script requires After Effects CS3 or later.", scriptName); return; } var my_palette = BuildAndShowUI(thisObj); if (my_palette != null) { if (my_palette instanceof Window) { my_palette.center(); my_palette.show(); } else { my_palette.layout.layout(true); my_palette.layout.resize(); } } else { alert("Could not open the user interface.", scriptName); } } ScaleComposition(this); }