我正在尝试将新的oAuth2 facebook SDK应用到我的应用程序中,但在我的生活中无法理解我应该在登录/验证后回到我的应用程序.
我的目标是在用户墙上发布消息.
我目前正在使用以下命令启动登录程序:
-(void)tryFBlogin {
NSString *appId = @"113142482******";
NSArray *permissions = [[NSArray arrayWithObjects:@"publish_stream",nil] retain];
TheAppDelegate *theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication]delegate];
//Asking for permission
theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate];
theAppDelegate.facebook = [[Facebook alloc] initWithAppId:appId andDelegate:self];
Facebook *fb = [theAppDelegate facebook];
[fb authorize:permissions];
}
Run Code Online (Sandbox Code Playgroud)
这是打开野生动物园浏览器.如果我已经登录并且已经授权应用程序,则会告诉我这样的消息并且我有一个OKay按钮可以按下.
当我按下OKay按钮时,我收到警告,说safari无法打开页面.我确认了警报,我还在看一个空白的野生动物园窗口.
如果我退出Facebook,我会看到我填写的登录屏幕,然后显示与上面相同的内容.
我知道我还没有在任何地方实现发布命令,因为我不知道应该在何时/何时实现.
我确实有这个委托方法,但似乎永远不会被调用
- (void)fbDidLogin {
NSLog(@"fbDidLogin");
}
Run Code Online (Sandbox Code Playgroud)
这是我等待放置的代码:
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
kAppId, @"113142482******",
facebookUrl, @"link",
@"http://www.domain.com", @"picture",
@"My Message", @"name",
@"Caption text!", @"caption",
@"Message text.", @"message",
nil];
[facebook dialog:@"feed" …Run Code Online (Sandbox Code Playgroud) 将数组存储在Array类型的Vector中是否有任何性能优势?
例如选项1
private var _arrays:Vector.<Array> = new Vector.<Array>(2);
_arrays[0] = new Array(10);
_arrays[1] = new Array(10);
Run Code Online (Sandbox Code Playgroud)
选项2
private var _arrays:Array = new Array(2);
_arrays[0] = new Array(10);
_arrays[1] = new Array(10);
Run Code Online (Sandbox Code Playgroud)
我也可以有矢量或矢量吗?
private var _vectors:Vector.<Vector> = new Vector.<Vector>(2);
_vectors[0] = new Vector.<String>(10);
_vectors[1] = new Vector.<String>(10);
Run Code Online (Sandbox Code Playgroud)
谢谢,
标记
我有一个函数,它给我一个我传入的对象的类类型.
public function getClass(obj:Object):Class {
return Class(getDefinitionByName(getQualifiedClassName(obj)));
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我这样做
trace(getClass(panelStack[0]));
Run Code Online (Sandbox Code Playgroud)
我在输出窗口中得到[类InfoPanel]是正确的
但是,如果我这样做
trace(getClass(panelStack[0]) is InfoPanel);
Run Code Online (Sandbox Code Playgroud)
我弄错了,但我期待的是真的.
谁能指出我在这里做错了什么.我正准备把头发的最后部分撕掉!!!
谢谢,
标记
我将如何根据其中一个嵌套数组元素的内容对嵌套数组的数组进行排序?
var nestedArray1:Array = new Array(0,0,1);
var nestedArray2:Array = new Array(0,0,9);
var nestedArray3:Array = new Array(0,0,7);
var nestedArray4:Array = new Array(0,0,3);
var parentArray:Array = new Array(nestedArray1,nestedArray2,nestedArray3,nestedArray4);
Run Code Online (Sandbox Code Playgroud)
我想最终得到一个使用嵌套数组第3个元素排序的数组.
所以跟踪sortedParentArray会给我:0,0,1,0,0,3,0,0,7,0,0,9
它是nestedArray1,nestedArray4,nestedArray3,nestedArray2
谢谢,
标记
我正在尝试使用Rectangle.intersection为我提供2个重叠形状的交叉区域的矩形,但没有取得多大成功.
下面的代码只是两个相同大小的形状.最顶级的形状是可拖动的.当拖动停止时,我执行bottomRect.intersection(topRect)调用,但这总是返回rect的完整大小,而不是交集大小.
(可以将代码复制并粘贴到第一帧的新ActionScript文件中并运行.)
有谁知道我哪里出错了?
谢谢
import flash.geom.Rectangle;
import flash.display.Sprite;
var bottomSprite:Sprite = new Sprite();
addChild(bottomSprite);
var bottomRect:Shape = new Shape;
bottomRect.graphics.beginFill(0xFF0000);
bottomRect.graphics.drawRect(0, 0, 320,480);
bottomRect.graphics.endFill();
bottomSprite.addChild(bottomRect);
var topSprite:Sprite = new Sprite();
addChild(topSprite);
var topRect:Shape = new Shape;
topRect.graphics.beginFill(0x000033);
topRect.graphics.drawRect(0, 0, 320,480);
topRect.graphics.endFill();
topSprite.addChild(topRect);
var bottomBoundsRect:Rectangle = stage.getBounds(bottomSprite);
trace("START: bottomBoundsRect ", bottomBoundsRect);
var topBoundsRect:Rectangle = stage.getBounds(topSprite);
trace("START: topBoundsRect ", topBoundsRect);
topSprite.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
topSprite.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
function mouseDownHandler(evt:MouseEvent):void{
topSprite.startDrag();
}
function mouseUpHandler(evt:MouseEvent):void{
topSprite.stopDrag();
topBoundsRect = stage.getBounds(topSprite);
trace("INTERSECTION RECT", bottomBoundsRect.intersection(topBoundsRect));
}
Run Code Online (Sandbox Code Playgroud) 我正在添加数组中保存的值,但总和是实际应该是+1.
//update totalscore
uint newTotalScore;
for (uint i=0; i< [bestscoresArray count] ; i++) {
newTotalScore += [[bestscoresArray objectAtIndex:i] intValue];
}
totalscore = newTotalScore;
Run Code Online (Sandbox Code Playgroud)
//输出l1bestscore = 15900,l2bestscore = 7800,l3bestscore = 81000,l4bestscore = 81000,l5bestscore = 0,l6bestscore = 0,l7bestscore = 0,l8bestscore = 0,l9bestscore = 0,l10bestscore = 0,totalscore = 185701
如您所见,totalscore输出为185701,但所有值的总和为185700.
有人会有任何想法为什么会这样吗?
谢谢,
标记
希望有人可以对这个"看似"直截了当的问题有所了解.我需要比较两个数组,看它们是否相同.
var _array1:Array = new Array();
var _array2:Array = new Array();
_array1.push(1,2,3,4,5);
_array2 = _array1.concat();
trace("_array2 "+_array2);
//traces 1,2,3,4,5 so I am assuming the copy took place.
if (_array2 == _array1) {
trace("the same");
} else {
trace("different");
}
Run Code Online (Sandbox Code Playgroud)
即使阵列看似相同,该测试也会追踪"不同".
有谁知道我哪里出错了?
谢谢,
标记
我有一个关于AS3内存管理的问题我想知道是否有人可以帮助我.
假设我为Class创建了一个实例变量,在这种情况下或者键入Sound:
public class SoundStore extends Sprite{
var s:Sound;
Run Code Online (Sandbox Code Playgroud)
然后在各种类函数中,我多次引用此变量,每次我想加载一个新的声音:
s = new Sound();
Run Code Online (Sandbox Code Playgroud)
我是否正确地认为每次创建新声音时我都会覆盖以前分配的内存?
谢谢
flash ×6
air ×1
apache-flex ×1
arrays ×1
facebook ×1
integer ×1
intersection ×1
ios ×1
iphone ×1
math ×1
objective-c ×1
xcode ×1