小编Aar*_*ron的帖子

Javascript:迭代对象文字值

我有一个标准的jQuery插件设置,在顶部创建默认设置:

jQuery.fn.myPlugin = function(options) { 
    var defaults = {  
        starts: "0px,0px",
        speed: 250, ...
    };
    o = $.extend(defaults, options);
}
Run Code Online (Sandbox Code Playgroud)

我有另一个变量叫numberOfObjects.

我正在尝试循环默认变量.对于找到的每个对象(from numberOfObjects),我需要复制变量值的值.所以,如果numberOfObjects变量是3,则defaults.starts应该是0px,0px > 0px,0px > 0px,0px.>用于分割值.

这就是我现在拥有的.X表示默认值中的变量名称.Y表示当前值的变量x.我已经走到这一步,并且不知道下一步该做什么.

for (x in defaults) {   // x is defaults.x
    defaults.x = defaults.x + " > y";
}
Run Code Online (Sandbox Code Playgroud)

javascript

57
推荐指数
6
解决办法
9万
查看次数

构建HTML5 Canvas/JS游戏

我是HTML5/Canvas/Game编程的新手,但在阅读了几本书之后一直在修补它.我认为我对事情的运作方式有了很好的了解.这个问题提出了几个较小的问题,但总的来说基本上是一个"结构方法"的问题.我不期待详细的回复,但希望这里和那里的小指针:)这里是一个非滚动的链接,目前相当无聊的超级马里奥世界.

超级马里奥世界考试

注意:控件是左/右和空格键可以跳转.这只是我刚才正在学习的Firefox设置.


我在这一点上做错了什么吗?

目前我只专注于马里奥如何运行和跳跃,并认为我已经把它弄得相当不错.硬币盒没有做任何事情,背景只是一个装入外观的图像.这是我的方法,请告诉我这是否有任何完全错误:

  • 允许Mario通过制定2个Y速度(重力和跳跃变量)来跳跃
  • 允许马里奥通过1速度(左或右"摩擦力"+加速度)来运行
  • 根据按键/按键使用和定位精灵
  • 我不确定这是否正确,但我正在使用构造函数来构建一个对象,然后在主动画循环中我调用该对象的prototype.draw函数来更新所有变量并重绘对象.
  • 我正在清理每个Frame的整个画布
  • 我应该把它分成不仅仅是一个绘制函数,比如Mario.move()吗?
  • 我已经设置了GroundLevel和JumpLevel变量来创建2个游戏平面.JumpLevel设置为允许控制Mario可以在飞行中跳跃的高度.这两个地方将允许地面像山一样上升 - 保持重力压倒马里奥的跳跃力与地面相同的距离.
  • 为了清楚起见,一切都被分成不同的JS文件,但显然会合并.

向前进:

现在我已经完成了马里奥如何移动的设置(我认为还有一些其他的小事我可能会像上升/下降和射击火球一样).我想我可以解决这个问题,但是当我想到以下内容以及HTML5/Canvas如何轻松处理这个问题时,我真的很遗憾:

  • 滚动背景(我已经尝试设置地面平铺并使用屏幕环绕,但这似乎会导致很多不均匀的问题,因为我在相反的方向移动瓷砖.不幸的是,因为我试图考虑加速度,这抛弃了计数,并造成了地面的空隙.我放弃了这个想法.画布下方的DIV是否是最佳解决方案?

  • 敌人:我会以同样的方式制造敌人并在每个帧中对每个敌人进行碰撞检测吗?

  • 背景框:我试图让Mario站在后台的盒子上,但我不确定如何处理这个问题.我目前有Mario的边界设置留在画布上,我是否继续扩展这些条件以根据框设置不同的边界?我可以看到在屏幕上有几个方框并且这样做会有点疯狂,特别是如果我会对敌人做同样的命中测试?我知道我在这里遗漏了一些东西....

  • 等级运动:这有点相关.按下右键时,基本上所有级别都需要向左移动.在每个动画帧中,我是否需要跟踪所有可能触及马里奥的位置(让他站在一起的盒子和让他碰撞的敌人)?这似乎会变得有点低效?

谢谢大家!我会用结果/解决方案更新这个:)

javascript html5 scroll canvas

9
推荐指数
1
解决办法
2275
查看次数

WordPress从回调函数获取Post Meta

我正在制作我的第一个WP插件,而且卡住了.

我在内容编辑器下面的帖子页面上创建了一个自定义字段(字段1).它保存正确.:)

我在添加媒体时在媒体库弹出窗口中创建了一个自定义字段(字段2).它保存正确.:)

我想要做的是使用字段1中的值作为字段2的默认值.

我怀疑问题在于attachment_fields_to_edit回调函数.

我认为$ post现在指的是实际的"文件附件帖子"而不是帖子本身,所以当我引用我保存的值时:

$post_meta = get_post_meta( $post->ID );
Run Code Online (Sandbox Code Playgroud)

它实际上是拉动与该附件相关联的所有元素,而不是当前帖子.是否可以从实际帖子中提取元数据?

此代码来自Codex:

function my_add_attachment_location_field( $form_fields, $post ) {
    $field_value = get_post_meta( $post->ID, 'location', true );
    $form_fields['location'] = array(
        'value' => $field_value ? $field_value : '',
        'label' => __( 'Location' ),
        'helps' => __( 'Set a location for this attachment' )
    );
    return $form_fields;
}
add_filter( 'attachment_fields_to_edit', 'my_add_attachment_location_field', 10, 2 );

function my_save_attachment_location( $attachment_id ) {
    if ( isset( $_REQUEST['attachments'][$attachment_id]['location'] ) ) {
        $location = $_REQUEST['attachments'][$attachment_id]['location'];
        update_post_meta( …
Run Code Online (Sandbox Code Playgroud)

php meta wordpress post

7
推荐指数
1
解决办法
1419
查看次数

在Chrome中为<video>标记添加边框半径

我已经看到这个问题弹出了几次没有任何明确的解决方案.

我正在加载一个简单的视频

<video src="" controls></video>
Run Code Online (Sandbox Code Playgroud)

在我的页面上.该视频可以跨浏览器工作和播放(不显示此问题的所有格式设置,因为它不相关).

然后我将边界半径应用于视频标签.这适用于Chrome以外的功能.我甚至可以拉起控制台并看到应用于视频标签的border-radius,但它不会渲染边框半径.

有人熟悉这个问题吗?我已经读过它是Chrome中的一个错误,但我不确定它是否已经解决或是否有解决方法?

css video html5 google-chrome css3

5
推荐指数
1
解决办法
5376
查看次数

jQuery插件创作和命名空间

我习惯写这样的插件:

;(function($){jQuery.fn.myPlugin=function(options){
    var defaults={
        'property':value
    },
    o=$.extend({},defaults,options||{});

   // INSERT AND CACHE ELEMENTS
   var $Element=$('<div></div>');
   $Element.appendTo($('body'));

function funFunction(){
  // I have access to $Element!
 $Element.hide(500);
};

this.each(function(i){
     var $this=$(this);
});
return this;
});};})(jQuery);
Run Code Online (Sandbox Code Playgroud)

我知道它并不完美,这就是为什么我现在正在努力学习命名空间,更好的插件结构/模式.不幸的是,我读过的几本书不经意地逐字引用了jQuery插件创作教程,所以没有多大帮助.该教程似乎将所有内容分开,并没有显示组合的良好示例,这就是为什么我感到困惑.在本教程中,它显示了命名空间示例.

jQuery插件命名空间教程

(function( $ ){
  var methods = {
    init : function( options ) { 
    },
    show : function( ) {
    },
    hide : function( ) { 
    },
    update : function( content ) { 
    }
  };

  $.fn.tooltip = function( method ) {
    // Method calling logic
    if ( …
Run Code Online (Sandbox Code Playgroud)

javascript jquery plugins javascript-namespaces

3
推荐指数
1
解决办法
1136
查看次数

如何防止回调多次触发?

我在这里看到了几个关于这个的问题,(包括使用when/promise解决方案),但它们似乎没有用.基本上我一次动画多个元素,并在回调中调用一个函数,但函数被多次调用 - 对于每个被动画化的元素...这是我的代码:

OBJCollection.css({
    'width': '0em',
    'height': '0em'
}).animate({
    'width': Screens.ImageW / 16 + 'em',
    'height': Screens.ImageH / 16 + 'em'
}, {
    duration: Screens.currentImageParent.data('LightboxFadeSpeedIn'),
    queue: false,
    step: function (now, fx) {
        componentScaler();
    },
    complete: function () {
        $Content.show('fade', Screens.currentImageParent.data('ContentFadeSpeedIn'));
        //calling function here
    }
});
Run Code Online (Sandbox Code Playgroud)

我试过了:

if (!OBJCollection.is(':animated')) { ... call function }
Run Code Online (Sandbox Code Playgroud)

这没用.我也尝试过使用when的解决方案,但这似乎抛弃了我的函数调用(根据OBJCollection的最终动画大小定位其他元素).我不确定(因为这是我第一次使用/ promise),但是在第一个项目完成动画并忽略所有其他项目后,它是否会触发一次回调?看起来这就是它正在做的事情,但我正在寻找一个解决方案,当所有项目完成动画时触发回调....

有任何想法吗?

javascript jquery callback jquery-animate

2
推荐指数
1
解决办法
872
查看次数

HTML中的IBM扩展ASCII字符

我正在尝试将特殊字符转换为HTML,并且不确定是否可以。如果有人记得Kroz或几乎每个DOS界面-都有一组特殊的形状字符。我想使用单大括号,双大括号,阴影和其他形状字符,但我似乎无法在任何地方跟踪到这些。

在此处输入图片说明

此外,在HTML环境中使用这些字符是否会引起任何本地化问题/是否存在必需的字符集?

谢谢!

html ascii dos character character-encoding

2
推荐指数
1
解决办法
598
查看次数

将图像像素数据转换为坐标数组

我有以下代码将图像绘制到画布并获取像素数据:

   var canvas=$('#canvas'),
       ctx=canvas.getContext('2d');

    ctx.drawImage(img, 0, 0);
    var data=ctx.getImageData(0, 0, canvas.width, canvas.height);
Run Code Online (Sandbox Code Playgroud)

这将RGBA我需要存储的值拉到一个我可以使用X/Y坐标访问的数组中.绘制到画布上的图像是黑/白图像 - 因此它会检查像素是黑色还是白色X,Y如:

imageArray[x][y]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何循环像素数据并将其保存到2d数组中,因此我可以通过坐标来调用它.

javascript html5 loops canvas

2
推荐指数
2
解决办法
4507
查看次数